Slice

com.github.arturopala.bufferandslice.Slice
See theSlice companion object
trait Slice[T] extends Int => T

Lazy and immutable slice of a sequence of values.

Type parameters

T

type of the items of the sequence.

Attributes

Note

As the slice usually wraps over a mutable structure, like an array or a java buffer, and it DOES NOT make an instant copy, any changes to the underlying source will directly affect the slice output unless detached. Detach is a one-time copy operation, and detached property is preserved across all operations returning a Slice.

Companion
object
Graph
Supertypes
trait Int => T
class Object
trait Matchable
class Any
Known subtypes
trait ArraySliceLike[T]
class ArraySlice[T]
class ByteSlice
class IntSlice
class RangeMapSlice[T]
Show all

Members list

Value members

Abstract methods

def asArray: Array[T]

Returns a trimmed copy of an underlying array.

Returns a trimmed copy of an underlying array.

Attributes

def asBuffer: Buffer[T]

Returns a buffer with a copy of this Slice.

Returns a buffer with a copy of this Slice.

Attributes

def detach: this.type

Detaches a slice creating a trimmed copy of an underlying data, if needed. Subsequent detach operations will return the same instance without making new copies.

Detaches a slice creating a trimmed copy of an underlying data, if needed. Subsequent detach operations will return the same instance without making new copies.

Attributes

def map[K](f: T => K): Slice[K]

Lazily composes mapping function and returns new Slice. Does not modify nor copy underlying array.

Lazily composes mapping function and returns new Slice. Does not modify nor copy underlying array.

Attributes

def slice(from: Int, to: Int): this.type

Lazily narrows Slice to provided range.

Lazily narrows Slice to provided range.

Attributes

def toBuffer[T1 >: T]: Buffer[T1]

Returns a buffer with a copy of this Slice.

Returns a buffer with a copy of this Slice.

Attributes

def update[T1 >: T](index: Int, value: T1): Slice[T1]

Update a value at the given index. Creates a copy of an underlying data.

Update a value at the given index. Creates a copy of an underlying data.

Attributes

Concrete methods

final override def apply(index: Int): T

Returns value at the given index.

Returns value at the given index.

Attributes

Definition Classes
Function1
final def asIterable: Iterable[T]

Returns new iterable of Slice values.

Returns new iterable of Slice values.

Attributes

def copyToArray[T1 >: T](targetIndex: Int, targetArray: Array[T1]): Array[T1]

Dumps content to the array, starting from an index.

Dumps content to the array, starting from an index.

Attributes

final def count(pred: T => Boolean): Int

Counts values fulfilling the predicate.

Counts values fulfilling the predicate.

Attributes

final def drop(n: Int): this.type

Lazily narrows Slice to exclude first N items.

Lazily narrows Slice to exclude first N items.

Attributes

final def dropRight(n: Int): this.type

Lazily narrows Slice to exclude last N items.

Lazily narrows Slice to exclude last N items.

Attributes

final override def equals(obj: Any): Boolean

Compares the receiver object (this) with the argument object (that) for equivalence.

Compares the receiver object (this) with the argument object (that) for equivalence.

Any implementation of this method should be an equivalence relation:

  • It is reflexive: for any instance x of type Any, x.equals(x) should return true.
  • It is symmetric: for any instances x and y of type Any, x.equals(y) should return true if and only if y.equals(x) returns true.
  • It is transitive: for any instances x, y, and z of type Any if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.

If you override this method, you should verify that your implementation remains an equivalence relation. Additionally, when overriding this method it is usually necessary to override hashCode to ensure that objects which are "equal" (o1.equals(o2) returns true) hash to the same scala.Int. (o1.hashCode.equals(o2.hashCode)).

Value parameters

that

the object to compare against this object for equality.

Attributes

Returns

true if the receiver object is equivalent to the argument; false otherwise.

Definition Classes
Any
final def exists(pred: T => Boolean): Boolean

Returns true if any value fulfills the predicate, or false.

Returns true if any value fulfills the predicate, or false.

Attributes

final def find(pred: T => Boolean): Option[T]

Returns Some of the first value fulfilling the predicate, or None.

Returns Some of the first value fulfilling the predicate, or None.

Attributes

final def fold(initial: T)(f: (T, T) => T): T

Combines from left to right all elements, starting with initial.

Combines from left to right all elements, starting with initial.

Attributes

final def foldLeft[R](initial: R)(f: (R, T) => R): R

Folds from left to right all elements, starting with initial.

Folds from left to right all elements, starting with initial.

Attributes

final def foldRight[R](initial: R)(f: (T, R) => R): R

Folds from right to left all elements, starting with initial.

Folds from right to left all elements, starting with initial.

Attributes

final def get(index: Int): Option[T]

Returns Some of the value at the index, or None if index outside of range.

Returns Some of the value at the index, or None if index outside of range.

Attributes

final override def hashCode(): Int

Calculates a hash code value for the object.

Calculates a hash code value for the object.

The default hashing algorithm is platform dependent.

Note that it is allowed for two objects to have identical hash codes (o1.hashCode.equals(o2.hashCode)) yet not be equal (o1.equals(o2) returns false). A degenerate implementation could always return 0. However, it is required that if two objects are equal (o1.equals(o2) returns true) that they have identical hash codes (o1.hashCode.equals(o2.hashCode)). Therefore, when overriding this method, be sure to verify that the behavior is consistent with the equals method.

Attributes

Returns

the hash code value for this object.

Definition Classes
Any
final def head: T

Returns first value in the Slice.

Returns first value in the Slice.

Attributes

final def headOption: Option[T]

Returns first value in the Slice.

Returns first value in the Slice.

Attributes

final def indexIterator(pred: T => Boolean): Iterator[Int]

Returns iterator over Slice indexes of values fulfilling the predicate.

Returns iterator over Slice indexes of values fulfilling the predicate.

Attributes

final def init: this.type

Returns the Slice without last value.

Returns the Slice without last value.

Attributes

final def isEmpty: Boolean

Returns true if Slice has values, otherwise false.

Returns true if Slice has values, otherwise false.

Attributes

final def iterator: Iterator[T]

Returns iterator over Slice values.

Returns iterator over Slice values.

Attributes

final def iterator(pred: T => Boolean): Iterator[T]

Returns iterator over Slice values fulfilling the predicate.

Returns iterator over Slice values fulfilling the predicate.

Attributes

final def last: T

Returns the last value in the Slice.

Returns the last value in the Slice.

Attributes

final def lastOption: Option[T]

Returns the last value in the Slice.

Returns the last value in the Slice.

Attributes

final def nonEmpty: Boolean

Returns true if Slice has values, otherwise false.

Returns true if Slice has values, otherwise false.

Attributes

final def reduce(f: (T, T) => T): T

Combines from right to left all elements.

Combines from right to left all elements.

Attributes

final def reverseIndexIterator(pred: T => Boolean): Iterator[Int]

Returns iterator over Slice indexes of values fulfilling the predicate, in the reverse order.

Returns iterator over Slice indexes of values fulfilling the predicate, in the reverse order.

Attributes

final def reverseIterator: Iterator[T]

Returns iterator over Slice values in the reverse order.

Returns iterator over Slice values in the reverse order.

Attributes

final def reverseIterator(pred: T => Boolean): Iterator[T]

Returns iterator over Slice values fulfilling the predicate, in the reverse order.

Returns iterator over Slice values fulfilling the predicate, in the reverse order.

Attributes

final def tail: this.type

Returns the Slice without first value.

Returns the Slice without first value.

Attributes

final def take(n: Int): this.type

Lazily narrows Slice to first N items.

Lazily narrows Slice to first N items.

Attributes

final def takeRight(n: Int): this.type

Lazily narrows Slice to last N items.

Lazily narrows Slice to last N items.

Attributes

final def toArray[T1 >: T : ClassTag]: Array[T1]

Returns a trimmed copy of an underlying array.

Returns a trimmed copy of an underlying array.

Attributes

final def toList: List[T]

Returns new list of Slice values.

Returns new list of Slice values.

Attributes

final def toSeq: Seq[T]

Returns new sequence of Slice values.

Returns new sequence of Slice values.

Attributes

final override def toString: String

Returns a string representation of the object.

Returns a string representation of the object.

The default representation is platform dependent.

Attributes

Returns

a string representation of the object.

Definition Classes
Function1 -> Any
final def top: Int

Returns top index value (length-1).

Returns top index value (length-1).

Attributes

Inherited methods

def andThen[A](g: T => A): Int => A

Attributes

Inherited from:
Function1
def compose[A](g: A => Int): A => T

Attributes

Inherited from:
Function1

Abstract fields

val length: Int

Returns length of the Slice.

Returns length of the Slice.

Attributes