summaryrefslogtreecommitdiff
path: root/src/library/scala/collection/generic/GenericParCompanion.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/library/scala/collection/generic/GenericParCompanion.scala')
-rw-r--r--src/library/scala/collection/generic/GenericParCompanion.scala29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/library/scala/collection/generic/GenericParCompanion.scala b/src/library/scala/collection/generic/GenericParCompanion.scala
new file mode 100644
index 0000000000..0da1a3a543
--- /dev/null
+++ b/src/library/scala/collection/generic/GenericParCompanion.scala
@@ -0,0 +1,29 @@
+package scala.collection.generic
+
+
+import scala.collection.parallel.Combiner
+import scala.collection.parallel.ParIterable
+import scala.collection.parallel.ParMap
+
+
+
+/** A template class for companion objects of parallel collection classes.
+ * They should be mixed in together with `GenericCompanion` type.
+ * @tparam CC the type constructor representing the collection class
+ * @since 2.8
+ */
+trait GenericParCompanion[+CC[X] <: ParIterable[X]] {
+ /** The default builder for $Coll objects.
+ */
+ def newBuilder[A]: Combiner[A, CC[A]]
+
+ /** The parallel builder for $Coll objects.
+ */
+ def newCombiner[A]: Combiner[A, CC[A]]
+}
+
+trait GenericParMapCompanion[+CC[P, Q] <: ParMap[P, Q]] {
+ def newCombiner[P, Q]: Combiner[(P, Q), CC[P, Q]]
+}
+
+