Class/Object

fs2

Chunk

Related Docs: object Chunk | package fs2

Permalink

abstract class Chunk[+O] extends Segment[O, Unit]

Segment with a known size and that allows index-based random access of elements.

Chunks can be created for a variety of collection types using methods on the Chunk companion (e.g., Chunk.vector, Chunk.seq, Chunk.array). Additionally, the Chunk companion defines a subtype of Chunk for each primitive type, using an unboxed primitive array. To work with unboxed arrays, use methods like toBytes to convert a Chunk[Byte] to a Chunk.Bytes and then access the array directly.

This type intentionally has a very limited API. Most operations are defined on Segment in a lazy/fusable fashion. In general, better performance comes from fusing as many operations as possible. As such, the chunk API is minimal, to encourage use of the fusable operations.

Some operations have a lazy/fusable definition (on Segment) and a strict definition on Chunk. To call such operations, use the .strict method -- e.g., c.strict.splitAt(3).

Self Type
Chunk[O]
Source
Chunk.scala
Linear Supertypes
Segment[O, Unit], AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Chunk
  2. Segment
  3. AnyRef
  4. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new Chunk()

    Permalink

Abstract Value Members

  1. abstract def apply(i: Int): O

    Permalink

    Returns the element at the specified index.

    Returns the element at the specified index. Throws if index is < 0 or >= size.

  2. abstract def mapStrict[O2](f: (O) ⇒ O2): Chunk[O2]

    Permalink

    Strict version of map.

    Strict version of map.

    Attributes
    protected
  3. abstract def size: Int

    Permalink

    Returns the number of elements in this chunk.

  4. abstract def splitAtChunk_(n: Int): (Chunk[O], Chunk[O])

    Permalink

    Strict version of splitAt - n is guaranteed to be within bounds so implementations do not need to do bounds checking.

    Strict version of splitAt - n is guaranteed to be within bounds so implementations do not need to do bounds checking.

    Attributes
    protected

Concrete Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. def +(other: String): String

    Permalink
    Implicit information
    This member is added by an implicit conversion from Chunk[O] to any2stringadd[Chunk[O]] performed by method any2stringadd in scala.Predef.
    Definition Classes
    any2stringadd
  4. final def ++[O2 >: O, R2 >: Unit](s2: Segment[O2, R2]): Segment[O2, R2]

    Permalink

    Concatenates this segment with s2.

    Concatenates this segment with s2.

    Definition Classes
    Segment
    Example:
    1. scala> (Segment(1,2,3) ++ Segment(4,5,6)).toVector
      res0: Vector[Int] = Vector(1, 2, 3, 4, 5, 6)
  5. def ->[B](y: B): (Chunk[O], B)

    Permalink
    Implicit information
    This member is added by an implicit conversion from Chunk[O] to ArrowAssoc[Chunk[O]] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @inline()
  6. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  7. final def append[O2 >: O, R2](s2: Segment[O2, R2]): Segment[O2, (Unit, R2)]

    Permalink

    Like ++ but allows the result type of s2 to differ from R.

    Like ++ but allows the result type of s2 to differ from R.

    Definition Classes
    Segment
  8. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  9. final def asResult[R2](r2: R2): Segment[O, R2]

    Permalink

    Alias for mapResult( => r2).

    Alias for mapResult( => r2).

    Definition Classes
    Segment
  10. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  11. final def collect[O2](pf: PartialFunction[O, O2]): Segment[O2, Unit]

    Permalink

    Filters and maps simultaneously.

    Filters and maps simultaneously.

    Definition Classes
    Segment
    Example:
    1. scala> Segment(Some(1), None, Some(2)).collect { case Some(i) => i }.toVector
      res0: Vector[Int] = Vector(1, 2)
  12. final def cons[O2 >: O](o2: O2): Segment[O2, Unit]

    Permalink

    Equivalent to Segment.singleton(o2) ++ this.

    Equivalent to Segment.singleton(o2) ++ this.

    Definition Classes
    Segment
    Example:
    1. scala> Segment(1, 2, 3).cons(0).toVector
      res0: Vector[Int] = Vector(0, 1, 2, 3)
  13. final def drain: Segment[Nothing, Unit]

    Permalink

    Returns a segment that suppresses all output and returns the result of this segment when run.

    Returns a segment that suppresses all output and returns the result of this segment when run.

    Definition Classes
    Segment
    Example:
    1. scala> Segment.from(0).take(3).drain.run.toOption.get.take(5).toVector
      res0: Vector[Long] = Vector(3, 4, 5, 6, 7)
  14. final def drop(n: Long): Either[(Unit, Long), Segment[O, Unit]]

    Permalink

    Eagerly drops n elements from the head of this segment, returning either the result and the number of elements remaining to drop, if the end of the segment was reached, or a new segment, if the end of the segment was not reached.

    Eagerly drops n elements from the head of this segment, returning either the result and the number of elements remaining to drop, if the end of the segment was reached, or a new segment, if the end of the segment was not reached.

    Definition Classes
    Segment
    Example:
    1. scala> Segment(1,2,3,4,5).drop(3).toOption.get.toVector
      res0: Vector[Int] = Vector(4, 5)
      scala> Segment(1,2,3,4,5).drop(7)
      res1: Either[(Unit, Long),Segment[Int,Unit]] = Left(((),2))
  15. final def dropWhile(p: (O) ⇒ Boolean, dropFailure: Boolean = false): Either[Unit, Segment[O, Unit]]

    Permalink

    Eagerly drops elements from the head of this segment until the supplied predicate returns false, returning either the result, if the end of the segment was reached without the predicate failing, or the remaining segment.

    Eagerly drops elements from the head of this segment until the supplied predicate returns false, returning either the result, if the end of the segment was reached without the predicate failing, or the remaining segment.

    If dropFailure is true, the first element that failed the predicate will be dropped. If false, the first element that failed the predicate will be the first element of the remainder.

    Definition Classes
    Segment
    Example:
    1. scala> Segment(1,2,3,4,5).dropWhile(_ < 3).map(_.toVector)
      res0: Either[Unit,Vector[Int]] = Right(Vector(3, 4, 5))
      scala> Segment(1,2,3,4,5).dropWhile(_ < 10)
      res1: Either[Unit,Segment[Int,Unit]] = Left(())
  16. def ensuring(cond: (Chunk[O]) ⇒ Boolean, msg: ⇒ Any): Chunk[O]

    Permalink
    Implicit information
    This member is added by an implicit conversion from Chunk[O] to Ensuring[Chunk[O]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  17. def ensuring(cond: (Chunk[O]) ⇒ Boolean): Chunk[O]

    Permalink
    Implicit information
    This member is added by an implicit conversion from Chunk[O] to Ensuring[Chunk[O]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  18. def ensuring(cond: Boolean, msg: ⇒ Any): Chunk[O]

    Permalink
    Implicit information
    This member is added by an implicit conversion from Chunk[O] to Ensuring[Chunk[O]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  19. def ensuring(cond: Boolean): Chunk[O]

    Permalink
    Implicit information
    This member is added by an implicit conversion from Chunk[O] to Ensuring[Chunk[O]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  20. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  21. def equals(a: Any): Boolean

    Permalink
    Definition Classes
    Segment → AnyRef → Any
  22. final def filter[O2](p: (O) ⇒ Boolean): Segment[O, Unit]

    Permalink

    Filters output elements of this segment with the supplied predicate.

    Filters output elements of this segment with the supplied predicate.

    Definition Classes
    Segment
    Example:
    1. scala> Segment(1,2,3,4,5).filter(_ % 2 == 0).toVector
      res0: Vector[Int] = Vector(2, 4)
  23. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  24. final def flatMap[O2, R2](f: (O) ⇒ Segment[O2, R2]): Segment[O2, (Unit, Option[R2])]

    Permalink

    List-like flatMap, which applies f to each element of the segment and concatenates the results.

    List-like flatMap, which applies f to each element of the segment and concatenates the results.

    Definition Classes
    Segment
    Example:
    1. scala> Segment(1, 2, 3).flatMap(i => Segment.seq(List.fill(i)(i))).toVector
      res0: Vector[Int] = Vector(1, 2, 2, 3, 3, 3)
  25. final def flatMapAccumulate[S, O2](init: S)(f: (S, O) ⇒ Segment[O2, S]): Segment[O2, (Unit, S)]

    Permalink

    Stateful version of flatMap, where the function depends on a state value initialized to init and updated upon each output.

    Stateful version of flatMap, where the function depends on a state value initialized to init and updated upon each output.

    The final state is returned in the result, paired with the result of the source stream.

    Definition Classes
    Segment
    Example:
    1. scala> val src = Segment("Hello", "World", "\n", "From", "Mars").flatMapAccumulate(0)((l,s) =>
           |   if (s == "\n") Segment.empty.asResult(0) else Segment((l,s)).asResult(l + s.length))
      scala> src.toVector
      res0: Vector[(Int,String)] = Vector((0,Hello), (5,World), (0,From), (4,Mars))
      scala> src.void.run
      res1: (Unit,Int) = ((),8)
  26. final def flatten[O2, R2 >: Unit](implicit ev: <:<[O, Segment[O2, R2]]): Segment[O2, R2]

    Permalink

    Flattens a Segment[Segment[O2,R],R] in to a Segment[O2,R].

    Flattens a Segment[Segment[O2,R],R] in to a Segment[O2,R].

    Definition Classes
    Segment
    Example:
    1. scala> Segment(Segment(1, 2), Segment(3, 4, 5)).flatten.toVector
      res0: Vector[Int] = Vector(1, 2, 3, 4, 5)
  27. final def flattenChunks[O2](implicit ev: <:<[O, Chunk[O2]]): Segment[O2, Unit]

    Permalink

    Flattens a Segment[Chunk[O2],R] in to a Segment[O2,R].

    Flattens a Segment[Chunk[O2],R] in to a Segment[O2,R].

    Definition Classes
    Segment
    Example:
    1. scala> Segment(Chunk(1, 2), Chunk(3, 4, 5)).flattenChunks.toVector
      res0: Vector[Int] = Vector(1, 2, 3, 4, 5)
  28. final def fold[B](z: B)(f: (B, O) ⇒ B): Segment[Nothing, B]

    Permalink

    Folds the output elements of this segment and returns the result as the result of the returned segment.

    Folds the output elements of this segment and returns the result as the result of the returned segment.

    Definition Classes
    Segment
    Example:
    1. scala> Segment(1,2,3,4,5).fold(0)(_ + _).run
      res0: Int = 15
  29. def foreach(f: (O) ⇒ Unit): Unit

    Permalink

    Invokes f on each output of this segment.

    Invokes f on each output of this segment.

    Definition Classes
    Segment
    Example:
    1. scala> val buf = collection.mutable.ListBuffer[Int]()
      scala> Segment(1,2,3).cons(0).foreach(i => buf += i)
      res0: Unit = ()
      scala> buf.toList
      res1: List[Int] = List(0, 1, 2, 3)
  30. def foreachChunk(f: (Chunk[O]) ⇒ Unit): Unit

    Permalink

    Invokes f on each chunk of this segment.

    Invokes f on each chunk of this segment.

    Definition Classes
    ChunkSegment
    Example:
    1. scala> val buf = collection.mutable.ListBuffer[Chunk[Int]]()
      scala> Segment(1,2,3).cons(0).foreachChunk(c => buf += c)
      res0: Unit = ()
      scala> buf.toList
      res1: List[Chunk[Int]] = List(Chunk(0), Chunk(1, 2, 3))
  31. def formatted(fmtstr: String): String

    Permalink
    Implicit information
    This member is added by an implicit conversion from Chunk[O] to StringFormat[Chunk[O]] performed by method StringFormat in scala.Predef.
    Definition Classes
    StringFormat
    Annotations
    @inline()
  32. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  33. def hashCode(): Int

    Permalink
    Definition Classes
    Segment → AnyRef → Any
  34. def indexWhere(p: (O) ⇒ Boolean): Option[Int]

    Permalink

    Returns the index of the first element which passes the specified predicate (i.e., p(i) == true) or None if no elements pass the predicate.

  35. final def isEmpty: Boolean

    Permalink

    True if size is zero, false otherwise.

  36. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  37. def last: Segment[Nothing, (Unit, Option[O])]

    Permalink

    Returns a segment that suppresses all output and returns the last element output by source segment paired with the source segment result.

    Returns a segment that suppresses all output and returns the last element output by source segment paired with the source segment result.

    Definition Classes
    Segment
    Example:
    1. scala> Segment(1,2,3).last.run
      res0: (Unit, Option[Int]) = ((),Some(3))
  38. def map[O2](f: (O) ⇒ O2): Segment[O2, Unit]

    Permalink

    Returns a segment that maps each output using the supplied function.

    Returns a segment that maps each output using the supplied function.

    Definition Classes
    Segment
    Example:
    1. scala> Segment(1,2,3).map(_ + 1).toVector
      res0: Vector[Int] = Vector(2, 3, 4)
  39. def mapAccumulate[S, O2](init: S)(f: (S, O) ⇒ (S, O2)): Segment[O2, (Unit, S)]

    Permalink

    Stateful version of map, where the map function depends on a state value initialized to init and updated upon each output value.

    Stateful version of map, where the map function depends on a state value initialized to init and updated upon each output value.

    The final state is returned in the result, paired with the result of the source stream.

    Definition Classes
    Segment
    Example:
    1. scala> val src = Segment("Hello", "World").mapAccumulate(0)((l,s) => (l + s.length, (l, s)))
      scala> src.toVector
      res0: Vector[(Int,String)] = Vector((0,Hello), (5,World))
      scala> src.void.run
      res1: (Unit,Int) = ((),10)
  40. final def mapConcat[O2](f: (O) ⇒ Chunk[O2]): Segment[O2, Unit]

    Permalink

    Returns a segment that maps each output using the supplied function and concatenates all the results.

    Returns a segment that maps each output using the supplied function and concatenates all the results.

    Definition Classes
    Segment
    Example:
    1. scala> Segment(1,2,3).mapConcat(o => Chunk.seq(List.range(0, o))).toVector
      res0: Vector[Int] = Vector(0, 0, 1, 0, 1, 2)
  41. final def mapResult[R2](f: (Unit) ⇒ R2): Segment[O, R2]

    Permalink

    Maps the supplied function over the result of this segment.

    Maps the supplied function over the result of this segment.

    Definition Classes
    Segment
    Example:
    1. scala> Segment('a', 'b', 'c').withSize.mapResult { case (_, size) => size }.void.run
      res0: Long = 3
  42. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  43. final def nonEmpty: Boolean

    Permalink

    False if size is zero, true otherwise.

  44. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  45. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  46. final def prepend[O2 >: O](c: Segment[O2, Any]): Segment[O2, Unit]

    Permalink

    Equivalent to s2 ++ this.

    Equivalent to s2 ++ this.

    Definition Classes
    Segment
    Example:
    1. scala> Segment(1, 2, 3).prepend(Segment(-1, 0)).toVector
      res0: Vector[Int] = Vector(-1, 0, 1, 2, 3)
  47. final def run[O2 >: O](implicit ev: =:=[O2, Unit]): Unit

    Permalink

    Computes the result of this segment.

    Computes the result of this segment. May only be called when O is Unit, to prevent accidentally ignoring output values. To intentionally ignore outputs, call s.void.run.

    Definition Classes
    Segment
    Example:
    1. scala> Segment(1, 2, 3).withSize.void.run
      res0: (Unit,Long) = ((),3)
  48. final def scan[B](z: B, emitFinal: Boolean = true)(f: (B, O) ⇒ B): Segment[B, B]

    Permalink

    Like fold but outputs intermediate results.

    Like fold but outputs intermediate results. If emitFinal is true, upon reaching the end of the stream, the accumulated value is output. If emitFinal is false, the accumulated output is not output. Regardless, the accumulated value is returned as the result of the segment.

    Definition Classes
    Segment
    Example:
    1. scala> Segment(1, 2, 3, 4, 5).scan(0)(_+_).toVector
      res0: Vector[Int] = Vector(0, 1, 3, 6, 10, 15)
  49. final def splitAt(n: Long): Either[(Unit, Catenable[Segment[O, Unit]], Long), (Catenable[Segment[O, Unit]], Segment[O, Unit])]

    Permalink

    Splits this segment at the specified index by simultaneously taking and dropping.

    Splits this segment at the specified index by simultaneously taking and dropping.

    If the segment has less than n elements, a left is returned, providing the result of the segment, all sub-segments taken, and the remaining number of elements (i.e., size - n).

    If the segment has more than n elements, a right is returned, providing the sub-segments up to the n-th element and a remainder segment.

    The prefix is computed eagerly while the suffix is computed lazily.

    Definition Classes
    Segment
    Example:
    1. scala> Segment(1, 2, 3, 4, 5).splitAt(2)
      res0: Either[(Unit,Catenable[Segment[Int,Unit]],Long),(Catenable[Segment[Int,Unit]],Segment[Int,Unit])] = Right((Catenable(Chunk(1, 2)),Chunk(3, 4, 5)))
      scala> Segment(1, 2, 3, 4, 5).splitAt(7)
      res0: Either[(Unit,Catenable[Segment[Int,Unit]],Long),(Catenable[Segment[Int,Unit]],Segment[Int,Unit])] = Left(((),Catenable(Chunk(1, 2, 3, 4, 5)),2))
  50. final def splitWhile(p: (O) ⇒ Boolean, emitFailure: Boolean = false): Either[(Unit, Catenable[Segment[O, Unit]]), (Catenable[Segment[O, Unit]], Segment[O, Unit])]

    Permalink

    Splits this segment at the first element where the supplied predicate returns false.

    Splits this segment at the first element where the supplied predicate returns false.

    Analagous to siumultaneously running takeWhile and dropWhile.

    If emitFailure is false, the first element which fails the predicate is returned in the suffix segment. If true, it is returned as the last element in the prefix segment.

    If the end of the segment is reached and the predicate has not failed, a left is returned, providing the segment result and the catenated sub-segments. Otherwise, a right is returned, providing the prefix sub-segments and the suffix remainder.

    Definition Classes
    Segment
    Example:
    1. scala> Segment(1, 2, 3, 4, 5).splitWhile(_ != 3)
      res0: Either[(Unit,Catenable[Segment[Int,Unit]]),(Catenable[Segment[Int,Unit]],Segment[Int,Unit])] = Right((Catenable(Chunk(1, 2)),Chunk(3, 4, 5)))
      scala> Segment(1, 2, 3, 4, 5).splitWhile(_ != 7)
      res0: Either[(Unit,Catenable[Segment[Int,Unit]]),(Catenable[Segment[Int,Unit]],Segment[Int,Unit])] = Left(((),Catenable(Chunk(1, 2, 3, 4, 5))))
  51. final def strict: StrictOps[O]

    Permalink

    Provides access to strict equivalent methods defined lazily on Segment.

  52. final def sum[N >: O](implicit N: Numeric[N]): Segment[Nothing, N]

    Permalink

    Sums the elements of this segment and returns the sum as the segment result.

    Sums the elements of this segment and returns the sum as the segment result.

    Definition Classes
    Segment
    Example:
    1. scala> Segment(1, 2, 3, 4, 5).sum.run
      res0: Int = 15
  53. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  54. final def take(n: Long): Segment[O, Either[(Unit, Long), Segment[O, Unit]]]

    Permalink

    Lazily takes n elements from this segment.

    Lazily takes n elements from this segment. The result of the returned segment is either a left containing the result of the original segment and the number of elements remaining to take when the end of the source segment was reached, or a right containing the remainder of the source segment after n elements are taken.

    Definition Classes
    Segment
    Example:
    1. scala> Segment.from(0).take(3).toVector
      res0: Vector[Long] = Vector(0, 1, 2)
      scala> Segment.from(0).take(3).void.run.toOption.get.take(5).toVector
      res1: Vector[Long] = Vector(3, 4, 5, 6, 7)
      scala> Segment(1, 2, 3).take(5).void.run
      res2: Either[(Unit, Long),Segment[Int,Unit]] = Left(((),2))
  55. final def takeWhile(p: (O) ⇒ Boolean, takeFailure: Boolean = false): Segment[O, Either[Unit, Segment[O, Unit]]]

    Permalink

    Returns a segment that outputs elements while p is true.

    Returns a segment that outputs elements while p is true.

    The result of the returned segment is either the result of the original stream, if the end was reached and the predicate was still passing, or the remaining stream, if the predicate failed. If takeFailure is true, the last element output is the first element which failed the predicate. If takeFailure is false, the first element of the remainder is the first element which failed the predicate.

    Definition Classes
    Segment
    Example:
    1. scala> Segment.from(0).takeWhile(_ < 3).toVector
      res0: Vector[Long] = Vector(0, 1, 2)
      scala> Segment.from(0).takeWhile(_ < 3, takeFailure = true).toVector
      res1: Vector[Long] = Vector(0, 1, 2, 3)
      scala> Segment.from(0).takeWhile(_ < 3).void.run.toOption.get.take(5).toVector
      res2: Vector[Long] = Vector(3, 4, 5, 6, 7)
  56. def toArray[O2 >: O](implicit arg0: ClassTag[O2]): Array[O2]

    Permalink

    Copies the elements of this chunk to an array.

    Copies the elements of this chunk to an array.

    Definition Classes
    ChunkSegment
  57. def toBooleans[B >: O](implicit ev: =:=[B, Boolean]): Booleans

    Permalink

    Converts this chunk to a Chunk.Booleans, allowing access to the underlying array of elements.

    Converts this chunk to a Chunk.Booleans, allowing access to the underlying array of elements. If this chunk is already backed by an unboxed array of booleans, this method runs in constant time. Otherwise, this method will copy of the elements of this chunk in to a single array.

  58. def toBytes[B >: O](implicit ev: =:=[B, Byte]): Bytes

    Permalink

    Converts this chunk to a Chunk.Bytes, allowing access to the underlying array of elements.

    Converts this chunk to a Chunk.Bytes, allowing access to the underlying array of elements. If this chunk is already backed by an unboxed array of bytes, this method runs in constant time. Otherwise, this method will copy of the elements of this chunk in to a single array.

  59. def toCatenable: Catenable[O]

    Permalink

    Converts this segment to a catenable of output values, discarding the result.

    Converts this segment to a catenable of output values, discarding the result.

    Caution: calling toCatenable on an infinite sequence will not terminate.

    Definition Classes
    Segment
    Example:
    1. scala> Segment(1, 2, 3).cons(0).cons(-1).toCatenable.toList
      res0: List[Int] = List(-1, 0, 1, 2, 3)
  60. def toChunk: Chunk[O]

    Permalink

    Converts this segment to a single chunk, discarding the result.

    Converts this segment to a single chunk, discarding the result.

    Caution: calling toChunk on an infinite sequence will not terminate.

    Definition Classes
    ChunkSegment
    Example:
    1. scala> Segment(1, 2, 3).cons(0).cons(-1).toChunk
      res0: Chunk[Int] = Chunk(-1, 0, 1, 2, 3)
  61. def toChunks: Catenable[Chunk[O]]

    Permalink

    Converts this segment to a sequence of chunks, discarding the result.

    Converts this segment to a sequence of chunks, discarding the result.

    Caution: calling toChunks on an infinite sequence will not terminate.

    Definition Classes
    ChunkSegment
    Example:
    1. scala> Segment(1, 2, 3).cons(0).cons(-1).toChunks.toList
      res0: List[Chunk[Int]] = List(Chunk(-1), Chunk(0), Chunk(1, 2, 3))
  62. def toDoubles[B >: O](implicit ev: =:=[B, Double]): Doubles

    Permalink

    Converts this chunk to a Chunk.Doubles, allowing access to the underlying array of elements.

    Converts this chunk to a Chunk.Doubles, allowing access to the underlying array of elements. If this chunk is already backed by an unboxed array of doubles, this method runs in constant time. Otherwise, this method will copy of the elements of this chunk in to a single array.

  63. def toFloats[B >: O](implicit ev: =:=[B, Float]): Floats

    Permalink

    Converts this chunk to a Chunk.Floats, allowing access to the underlying array of elements.

    Converts this chunk to a Chunk.Floats, allowing access to the underlying array of elements. If this chunk is already backed by an unboxed array of doubles, this method runs in constant time. Otherwise, this method will copy of the elements of this chunk in to a single array.

  64. def toInts[B >: O](implicit ev: =:=[B, Int]): Ints

    Permalink

    Converts this chunk to a Chunk.Ints, allowing access to the underlying array of elements.

    Converts this chunk to a Chunk.Ints, allowing access to the underlying array of elements. If this chunk is already backed by an unboxed array of bytes, this method runs in constant time. Otherwise, this method will copy of the elements of this chunk in to a single array.

  65. def toList: List[O]

    Permalink

    Converts this segment to a list, discarding the result.

    Converts this segment to a list, discarding the result.

    Caution: calling toList on an infinite sequence will not terminate.

    Definition Classes
    Segment
    Example:
    1. scala> Segment(1, 2, 3).cons(0).cons(-1).toList
      res0: List[Int] = List(-1, 0, 1, 2, 3)
  66. def toLongs[B >: O](implicit ev: =:=[B, Long]): Longs

    Permalink

    Converts this chunk to a Chunk.Longs, allowing access to the underlying array of elements.

    Converts this chunk to a Chunk.Longs, allowing access to the underlying array of elements. If this chunk is already backed by an unboxed array of longs, this method runs in constant time. Otherwise, this method will copy of the elements of this chunk in to a single array.

  67. def toShorts[B >: O](implicit ev: =:=[B, Short]): Shorts

    Permalink

    Converts this chunk to a Chunk.Shorts, allowing access to the underlying array of elements.

    Converts this chunk to a Chunk.Shorts, allowing access to the underlying array of elements. If this chunk is already backed by an unboxed array of bytes, this method runs in constant time. Otherwise, this method will copy of the elements of this chunk in to a single array.

  68. def toString(): String

    Permalink
    Definition Classes
    Chunk → AnyRef → Any
  69. def toVector: Vector[O]

    Permalink

    Converts this segment to a list, discarding the result.

    Converts this segment to a list, discarding the result.

    Caution: calling toList on an infinite sequence will not terminate.

    Definition Classes
    ChunkSegment
    Example:
    1. scala> Segment(1, 2, 3).cons(0).cons(-1).toList
      res0: List[Int] = List(-1, 0, 1, 2, 3)
  70. final def uncons: Either[Unit, (Segment[O, Unit], Segment[O, Unit])]

    Permalink

    Returns the first output sub-segment of this segment along with the remainder, wrapped in Right, or if this segment is empty, returns the result wrapped in Left.

    Returns the first output sub-segment of this segment along with the remainder, wrapped in Right, or if this segment is empty, returns the result wrapped in Left.

    Definition Classes
    Segment
    Example:
    1. scala> Segment(1, 2, 3).cons(0).uncons
      res0: Either[Unit,(Segment[Int,Unit], Segment[Int,Unit])] = Right((Chunk(0),Chunk(1, 2, 3)))
      scala> Segment.empty[Int].uncons
      res1: Either[Unit,(Segment[Int,Unit], Segment[Int,Unit])] = Left(())
  71. final def uncons1: Either[Unit, (O, Segment[O, Unit])]

    Permalink

    Returns the first output of this segment along with the remainder, wrapped in Right, or if this segment is empty, returns the result wrapped in Left.

    Returns the first output of this segment along with the remainder, wrapped in Right, or if this segment is empty, returns the result wrapped in Left.

    Definition Classes
    Segment
    Annotations
    @tailrec()
    Example:
    1. scala> Segment(1, 2, 3).cons(0).uncons1
      res0: Either[Unit,(Int, Segment[Int,Unit])] = Right((0,Chunk(1, 2, 3)))
      scala> Segment.empty[Int].uncons1
      res1: Either[Unit,(Int, Segment[Int,Unit])] = Left(())
  72. def unconsChunk: Either[Unit, (Chunk[O], Segment[O, Unit])]

    Permalink

    Returns the first output chunk of this segment along with the remainder, wrapped in Right, or if this segment is empty, returns the result wrapped in Left.

    Returns the first output chunk of this segment along with the remainder, wrapped in Right, or if this segment is empty, returns the result wrapped in Left.

    Definition Classes
    ChunkSegment
    Example:
    1. scala> Segment(1, 2, 3).prepend(Chunk(-1, 0)).unconsChunk
      res0: Either[Unit,(Chunk[Int], Segment[Int,Unit])] = Right((Chunk(-1, 0),Chunk(1, 2, 3)))
      scala> Segment.empty[Int].unconsChunk
      res1: Either[Unit,(Chunk[Int], Segment[Int,Unit])] = Left(())
  73. final def unconsChunks: Either[Unit, (Catenable[Chunk[O]], Segment[O, Unit])]

    Permalink

    Returns the first output chunks of this segment along with the remainder, wrapped in Right, or if this segment is empty, returns the result wrapped in Left.

    Returns the first output chunks of this segment along with the remainder, wrapped in Right, or if this segment is empty, returns the result wrapped in Left.

    Differs from unconsChunk when a single step results in multiple outputs.

    Definition Classes
    Segment
    Example:
    1. scala> Segment(1, 2, 3).prepend(Chunk(-1, 0)).unconsChunks
      res0: Either[Unit,(Catenable[Chunk[Int]], Segment[Int,Unit])] = Right((Catenable(Chunk(-1, 0)),Chunk(1, 2, 3)))
      scala> Segment.empty[Int].unconsChunks
      res1: Either[Unit,(Catenable[Chunk[Int]], Segment[Int,Unit])] = Left(())
  74. final def void: Segment[Unit, Unit]

    Permalink

    Alias for map(_ => ()).

    Alias for map(_ => ()).

    Definition Classes
    Segment
    Example:
    1. scala> Segment(1, 2, 3).void.toList
      res0: List[Unit] = List((), (), ())
  75. final def voidResult: Segment[O, Unit]

    Permalink

    Returns a new segment which discards the result and replaces it with unit.

    Returns a new segment which discards the result and replaces it with unit.

    Definition Classes
    Segment
    Example:
    1. scala> Segment(1, 2, 3).take(2).voidResult
      res0: Segment[Int,Unit] = ((Chunk(1, 2, 3)).take(2)).mapResult(<f1>)
  76. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  77. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  78. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  79. def withSize: Segment[O, (Unit, Long)]

    Permalink

    Returns a new segment which includes the number of elements output in the result.

    Returns a new segment which includes the number of elements output in the result.

    Definition Classes
    Segment
    Example:
    1. scala> Segment(1, 2, 3).withSize.void.run
      res0: (Unit,Long) = ((),3)
  80. def zipWith[O2, R2, O3](that: Segment[O2, R2])(f: (O, O2) ⇒ O3): Segment[O3, Either[(Unit, Segment[O2, R2]), (R2, Segment[O, Unit])]]

    Permalink

    Zips this segment with another segment using the supplied function to combine elements from this and that.

    Zips this segment with another segment using the supplied function to combine elements from this and that. Terminates when either segment terminates.

    Definition Classes
    Segment
    Example:
    1. scala> Segment(1,2,3).zipWith(Segment(4,5,6,7))(_+_).toList
      res0: List[Int] = List(5, 7, 9)
  81. def [B](y: B): (Chunk[O], B)

    Permalink
    Implicit information
    This member is added by an implicit conversion from Chunk[O] to ArrowAssoc[Chunk[O]] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc

Inherited from Segment[O, Unit]

Inherited from AnyRef

Inherited from Any

Inherited by implicit conversion any2stringadd from Chunk[O] to any2stringadd[Chunk[O]]

Inherited by implicit conversion StringFormat from Chunk[O] to StringFormat[Chunk[O]]

Inherited by implicit conversion Ensuring from Chunk[O] to Ensuring[Chunk[O]]

Inherited by implicit conversion ArrowAssoc from Chunk[O] to ArrowAssoc[Chunk[O]]

Ungrouped