diff options
author | Paul Phillips <paulp@improving.org> | 2009-05-08 18:24:05 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2009-05-08 18:24:05 +0000 |
commit | f3c0640e3d7270795cc15dc923d811074c0836d7 (patch) | |
tree | c88f2c71c1ecd831c228f8e12171d07f3ea6aee0 /src/library/scala/collection/generic/TraversableView.scala | |
parent | 75d487d831dfa388c4c3683eedd0db16491a048a (diff) | |
download | scala-f3c0640e3d7270795cc15dc923d811074c0836d7.tar.gz scala-f3c0640e3d7270795cc15dc923d811074c0836d7.tar.bz2 scala-f3c0640e3d7270795cc15dc923d811074c0836d7.zip |
4 out of 5 spelling bee champs say: Traversable
Diffstat (limited to 'src/library/scala/collection/generic/TraversableView.scala')
-rwxr-xr-x | src/library/scala/collection/generic/TraversableView.scala | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/library/scala/collection/generic/TraversableView.scala b/src/library/scala/collection/generic/TraversableView.scala new file mode 100755 index 0000000000..19dfc7e447 --- /dev/null +++ b/src/library/scala/collection/generic/TraversableView.scala @@ -0,0 +1,29 @@ +/* __ *\ +** ________ ___ / / ___ Scala API ** +** / __/ __// _ | / / / _ | (c) 2003-2009, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** +** /____/\___/_/ |_/____/_/ | | ** +** |/ ** +\* */ +package scala.collection.generic + +import Math.MAX_INT +import TraversableView.NoBuilder + +/** A base class for views of Traversable. + * Every subclass has to implenment the foreach method + * @author Martin Odersky + * @version 2.8 + */ +trait TraversableView[+A, +Coll <: Traversable[_]] extends TraversableViewTemplate[A, Coll, TraversableView[A, Coll]] + +object TraversableView { + class NoBuilder[A] extends Builder[A, Nothing, TraversableView[_, _]] { + def +=(elem: A) {} + def elements: Iterator[A] = Iterator.empty + def result() = throw new UnsupportedOperationException("TraversableView.Builder.result") + def clear() {} + } + type Coll = TraversableView[_, _] + implicit def builderFactory[A]: BuilderFactory[A, TraversableView[A, Traversable[_]], Coll] = new BuilderFactory[A, TraversableView[A, Traversable[_]], Coll] { def apply(from: Coll) = new NoBuilder } +} |