Chunk

abstract class Chunk[+O] extends Serializable with ChunkPlatform[O]

Strict, finite sequence of values that allows index-based random access of elements.

Strict, finite sequence of values that allows index-based random access of elements.

Chunks can be created from 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.

The operations on Chunk are all defined strictly. For example, c.map(f).map(g).map(h) results in intermediate chunks being created (1 per call to map).

Companion
object
trait ChunkPlatform[O]
trait Serializable
class Object
trait Matchable
class Any
class Singleton[O]
class Boxed[O]
class Booleans
class Bytes
class Buffer[A, B, C]
class IntBuffer
class Shorts
class Ints
class Longs
class Floats
class Doubles
class Chars

Value members

Abstract methods

def apply(i: Int): O

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

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

def copyToArray[O2 >: O](xs: Array[O2], start: Int): Unit

Copies the elements of this chunk in to the specified array at the specified start index.

Copies the elements of this chunk in to the specified array at the specified start index.

def size: Int

Returns the number of elements in this chunk.

Returns the number of elements in this chunk.

Concrete methods

def collect[O2](pf: PartialFunction[O, O2]): Chunk[O2]

More efficient version of filter(pf.isDefinedAt).map(pf).

More efficient version of filter(pf.isDefinedAt).map(pf).

def drop(n: Int): Chunk[O]

Drops the first n elements of this chunk.

Drops the first n elements of this chunk.

override def equals(a: Any): Boolean
Definition Classes
Any
def filter(p: O => Boolean): Chunk[O]

Returns a chunk that has only the elements that satisfy the supplied predicate.

Returns a chunk that has only the elements that satisfy the supplied predicate.

def find(p: O => Boolean): Option[O]

Returns the first element for which the predicate returns true or None if no elements satisfy the predicate.

Returns the first element for which the predicate returns true or None if no elements satisfy the predicate.

def flatMap[O2](f: O => Chunk[O2]): Chunk[O2]

Maps f over the elements of this chunk and concatenates the result.

Maps f over the elements of this chunk and concatenates the result.

def foldLeft[A](init: A)(f: (A, O) => A): A

Left-folds the elements of this chunk.

Left-folds the elements of this chunk.

def forall(p: O => Boolean): Boolean

Returns true if the predicate passes for all elements.

Returns true if the predicate passes for all elements.

def foreach(f: O => Unit): Unit

Invokes the supplied function for each element of this chunk.

Invokes the supplied function for each element of this chunk.

override def hashCode: Int
Definition Classes
Any
def head: Option[O]

Gets the first element of this chunk.

Gets the first element of this chunk.

def indexWhere(p: O => Boolean): Option[Int]

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.

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.

final def isEmpty: Boolean

True if size is zero, false otherwise.

True if size is zero, false otherwise.

def iterator: Iterator[O]

Creates an iterator that iterates the elements of this chunk. The returned iterator is not thread safe.

Creates an iterator that iterates the elements of this chunk. The returned iterator is not thread safe.

def knownElementType[B](classTag: ClassTag[B]): Boolean

Returns true if this chunk is known to have elements of type B. This is determined by checking if the chunk type mixes in Chunk.KnownElementType.

Returns true if this chunk is known to have elements of type B. This is determined by checking if the chunk type mixes in Chunk.KnownElementType.

def last: Option[O]

Gets the last element of this chunk.

Gets the last element of this chunk.

def map[O2](f: O => O2): Chunk[O2]

Creates a new chunk by applying f to each element in this chunk.

Creates a new chunk by applying f to each element in this chunk.

def mapAccumulate[S, O2](init: S)(f: (S, O) => (S, O2)): (S, Chunk[O2])

Maps the supplied stateful function over each element, outputting the final state and the accumulated outputs. The first invocation of f uses init as the input state value. Each successive invocation uses the output state of the previous invocation.

Maps the supplied stateful function over each element, outputting the final state and the accumulated outputs. The first invocation of f uses init as the input state value. Each successive invocation uses the output state of the previous invocation.

final def nonEmpty: Boolean

False if size is zero, true otherwise.

False if size is zero, true otherwise.

def reverseIterator: Iterator[O]

Creates an iterator that iterates the elements of this chunk in reverse order. The returned iterator is not thread safe.

Creates an iterator that iterates the elements of this chunk in reverse order. The returned iterator is not thread safe.

def scanLeft[O2](z: O2)(f: (O2, O) => O2): Chunk[O2]

Like foldLeft but emits each intermediate result of f.

Like foldLeft but emits each intermediate result of f.

def scanLeftCarry[O2](z: O2)(f: (O2, O) => O2): (Chunk[O2], O2)

Like scanLeft except the final element is emitted as a standalone value instead of as the last element of the accumulated chunk.

Like scanLeft except the final element is emitted as a standalone value instead of as the last element of the accumulated chunk.

Equivalent to val b = a.scanLeft(z)(f); val (c, carry) = b.splitAt(b.size - 1).

def splitAt(n: Int): (Chunk[O], Chunk[O])

Splits this chunk in to two chunks at the specified index.

Splits this chunk in to two chunks at the specified index.

def take(n: Int): Chunk[O]

Takes the first n elements of this chunk.

Takes the first n elements of this chunk.

def toArray[O2 >: O](`evidence$1`: ClassTag[O2]): Array[O2]

Copies the elements of this chunk to an array.

Copies the elements of this chunk to an array.

def toBitVector[B >: O](ev: B =:= Byte): BitVector

Converts this chunk to a scodec-bits BitVector.

Converts this chunk to a scodec-bits BitVector.

def toBooleans[B >: O](ev: B =:= Boolean): Booleans

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.

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.

def toByteBuffer[B >: O](ev: B =:= Byte): ByteBuffer

Converts this chunk to a java.nio.ByteBuffer.

Converts this chunk to a java.nio.ByteBuffer.

def toByteVector[B >: O](ev: B =:= Byte): ByteVector

Converts this chunk to a scodec-bits ByteVector.

Converts this chunk to a scodec-bits ByteVector.

def toBytes[B >: O](ev: B =:= Byte): Bytes

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.

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.

def toChain: Chain[O]

Converts this chunk to a chain.

Converts this chunk to a chain.

def toDoubles[B >: O](ev: B =:= Double): Doubles

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.

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.

def toFloats[B >: O](ev: B =:= Float): Floats

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.

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.

def toInts[B >: O](ev: B =:= Int): Ints

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.

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.

def toList: List[O]

Converts this chunk to a list.

Converts this chunk to a list.

def toLongs[B >: O](ev: B =:= Long): Longs

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.

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.

def toNel: Option[NonEmptyList[O]]

Converts this chunk to a NonEmptyList

Converts this chunk to a NonEmptyList

def toShorts[B >: O](ev: B =:= Short): Shorts

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.

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.

override def toString: String
Definition Classes
Any
def toVector: Vector[O]

Converts this chunk to a vector.

Converts this chunk to a vector.

def zip[O2](that: Chunk[O2]): Chunk[(O, O2)]

Zips this chunk the the supplied chunk, returning a chunk of tuples.

Zips this chunk the the supplied chunk, returning a chunk of tuples.

def zipWith[O2, O3](that: Chunk[O2])(f: (O, O2) => O3): Chunk[O3]

Zips this chunk with the supplied chunk, passing each pair to f, resulting in an output chunk.

Zips this chunk with the supplied chunk, passing each pair to f, resulting in an output chunk.

def zipWithIndex: Chunk[(O, Int)]

Zips the elements of the input chunk with its indices, and returns the new chunk.

Zips the elements of the input chunk with its indices, and returns the new chunk.

Example
scala> Chunk("The", "quick", "brown", "fox").zipWithIndex.toList
res0: List[(String, Int)] = List((The,0), (quick,1), (brown,2), (fox,3))

Inherited methods

def toArraySeq[O2 >: O](`evidence$1`: ClassTag[O2]): ArraySeq[O2]
Inherited from
ChunkPlatform
def toArraySeqUntagged: ArraySeq[O]
Inherited from
ChunkPlatform