summaryrefslogtreecommitdiff
path: root/src/library/scala/collection/generic/ImmutableMapFactory.scala
blob: 51758fe8c2215e00aca40d630213a9d9c67785b5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package scala.collection.generic

/** A template for companion objects of immutable.Map and subclasses thereof.
 */
abstract class ImmutableMapFactory[CC[A, +B] <: immutable.Map[A, B] with MapTemplate[A, B, CC[A, B]]] {

  def newBuilder[A, B]: Builder[(A, B), CC[A, B]] = new ImmutableMapBuilder[A, B, CC[A, B]](empty[A, B])

  def empty[A, B]: CC[A, B]

  def apply[A, B](elems: (A, B)*): CC[A, B] = {
    val b = newBuilder[A, B]
    b ++= Iterable.fromOld(elems)
    b.result
  }
}