scala.collection.generic.CanBuildFrom

trait CanBuildFrom[-From, -Elem, +To] extends AnyRef

A base trait for builder factories.

  • From
    • the type of the underlying collection that requests a builder to be created.
  • Elem
    • the element type of the collection to be created.
  • To
    • the type of the collection to be created.
  • Annotations
    • @ implicitNotFound (msg =…)
  • Source
  • Since
    • 2.8
  • See also
    • scala.collection.mutable.Builder

Abstract Value Members From scala.collection.generic.CanBuildFrom

abstract def apply(): Builder[Elem, To]

Creates a new builder from scratch.

  • returns
    • a builder for collections of type To with element type Elem .
  • See also
    • scala.collection.breakOut

(defined at scala.collection.generic.CanBuildFrom)

abstract def apply(from: From): Builder[Elem, To]

Creates a new builder on request of a collection.

  • from
    • the collection requesting the builder to be created.
  • returns
    • a builder for collections of type To with element type Elem . The collections framework usually arranges things so that the created builder will build the same kind of collection as from . (defined at scala.collection.generic.CanBuildFrom)

Full Source:

/*                     __                                               *\
**     ________ ___   / /  ___     Scala API                            **
**    / __/ __// _ | / /  / _ |    (c) 2003-2013, LAMP/EPFL             **
**  __\ \/ /__/ __ |/ /__/ __ |    http://scala-lang.org/               **
** /____/\___/_/ |_/____/_/ | |                                         **
**                          |/                                          **
\*                                                                      */


package scala
package collection
package generic

import mutable.Builder
import scala.annotation.implicitNotFound

/** A base trait for builder factories.
 *
 *  @tparam From  the type of the underlying collection that requests
 *                a builder to be created.
 *  @tparam Elem  the element type of the collection to be created.
 *  @tparam To    the type of the collection to be created.
 *
 *  @see [[scala.collection.mutable.Builder]]
 *  @author Martin Odersky
 *  @author Adriaan Moors
 *  @since 2.8
 */
@implicitNotFound(msg = "Cannot construct a collection of type ${To} with elements of type ${Elem} based on a collection of type ${From}.")
trait CanBuildFrom[-From, -Elem, +To] {

  /** Creates a new builder on request of a collection.
   *  @param from  the collection requesting the builder to be created.
   *  @return a builder for collections of type `To` with element type `Elem`.
   *          The collections framework usually arranges things so
   *          that the created builder will build the same kind of collection
   *          as `from`.
   */
  def apply(from: From): Builder[Elem, To]

  /** Creates a new builder from scratch.
   *
   *  @return a builder for collections of type `To` with element type `Elem`.
   *  @see scala.collection.breakOut
   */
  def apply(): Builder[Elem, To]
}