final class ArrayCursor[A] extends BatchCursor[A]
BatchCursor type that works over an underlying Array
.
NOTE: all transformations happen by copying from the source array into a modified copy, hence all transformations have strict behavior!
To build an instance, prefer BatchCursor.fromArray
.
- Self Type
- ArrayCursor[A]
- Source
- ArrayCursor.scala
- Alphabetic
- By Inheritance
- ArrayCursor
- BatchCursor
- Serializable
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def array: Array[A]
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- def collect[B](pf: PartialFunction[A, B]): ArrayCursor[B]
Creates a cursor by transforming values produced by the source cursor with a partial function, dropping those values for which the partial function is not defined.
Creates a cursor by transforming values produced by the source cursor with a partial function, dropping those values for which the partial function is not defined.
NOTE: application of this function can be either strict or lazy (depending on the underlying cursor type), but it does not modify the original collection.
- pf
the partial function which filters and maps the cursor.
- returns
a new cursor which yields each value
x
produced by this cursor for whichpf
is defined
- Definition Classes
- ArrayCursor → BatchCursor
- def drop(n: Int): ArrayCursor[A]
Creates a new cursor that advances this cursor past the first
n
elements, or the length of the cursor, whichever is smaller.Creates a new cursor that advances this cursor past the first
n
elements, or the length of the cursor, whichever is smaller.- n
the number of elements to drop
- returns
a cursor which produces all values of the current cursor, except it omits the first
n
values.
- Definition Classes
- ArrayCursor → BatchCursor
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def filter(p: (A) => Boolean): ArrayCursor[A]
Returns an cursor over all the elements of the source cursor that satisfy the predicate
p
.Returns an cursor over all the elements of the source cursor that satisfy the predicate
p
. The order of the elements is preserved.NOTE: application of this function can be either strict or lazy (depending on the underlying cursor type), but it does not modify the original collection.
- p
the predicate used to test values.
- returns
a cursor which produces those values of this cursor which satisfy the predicate
p
.
- Definition Classes
- ArrayCursor → BatchCursor
- def foldLeft[R](initial: R)(op: (R, A) => R): R
Applies a binary operator to a start value and all elements of this cursor, going left to right.
Applies a binary operator to a start value and all elements of this cursor, going left to right.
NOTE: applying this function on the cursor will consume it completely.
- R
is the result type of the binary operator.
- initial
is the start value.
- op
the binary operator to apply
- returns
the result of inserting
op
between consecutive elements of this cursor, going left to right with the start valueinitial
on the left. Returnsinitial
if the cursor is empty.
- Definition Classes
- BatchCursor
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def hasNext(): Boolean
Tests whether this cursor can provide another element.
Tests whether this cursor can provide another element.
This method can be side-effecting, depending on the implementation and thus it can also throw exceptions. This is because in certain cases the only way to know if there is a next element or not involves triggering dangerous side-effects.
This method is idempotent until the call to next happens, meaning that multiple
hasNext
calls can be made and implementations are advised to memoize the result.- returns
true
if a subsequent call to next will yield an element,false
otherwise.
- Definition Classes
- ArrayCursor → BatchCursor
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def isEmpty: Boolean
Returns
true
in case our cursor is empty orfalse
if there are more elements to process.Returns
true
in case our cursor is empty orfalse
if there are more elements to process.Alias for
!cursor.hasNext()
.- Definition Classes
- BatchCursor
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def length: Int
- def map[B](f: (A) => B): ArrayCursor[B]
Creates a new cursor that maps all produced values of this cursor to new values using a transformation function.
Creates a new cursor that maps all produced values of this cursor to new values using a transformation function.
NOTE: application of this function can be either strict or lazy (depending on the underlying cursor type), but it does not modify the original collection.
- f
is the transformation function
- returns
a new cursor which transforms every value produced by this cursor by applying the function
f
to it.
- Definition Classes
- ArrayCursor → BatchCursor
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def next(): A
Produces the next element of this iterator.
Produces the next element of this iterator.
This method is side-effecting, as it mutates the internal state of the cursor and can throw exceptions.
- returns
the next element of this iterator, if
hasNext
istrue
, undefined behavior otherwise (can throw exceptions).
- Definition Classes
- ArrayCursor → BatchCursor
- def nonEmpty: Boolean
Returns
true
in case our cursor has more elements to process orfalse
if the cursor is empty.Returns
true
in case our cursor has more elements to process orfalse
if the cursor is empty.Alias for hasNext.
- Definition Classes
- BatchCursor
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def offset: Int
- val recommendedBatchSize: Int
In case this cursor is going to be processed eagerly, in batches then this value should be the recommended batch size for the source cursor.
In case this cursor is going to be processed eagerly, in batches then this value should be the recommended batch size for the source cursor.
Examples:
- if this cursor is iterating over a standard
collection with a finite size, it can be something
generous like
1024
- if it's iterating over a cheap infinite iterator
(e.g.
Iterator.range
), it could be 128. - if it does any sort of I/O or blocking of threads,
then the recommended value is
1
.
Basically the batch size should be adjusted according to how expensive processing this cursor is. If it's a strict collection of a finite size, then it can probably be processed all at once. But if it's a big database result set that can block threads on reads, then it's probably wise to do it one item at a time.
- Definition Classes
- ArrayCursor → BatchCursor
- if this cursor is iterating over a standard
collection with a finite size, it can be something
generous like
- def slice(from: Int, until: Int): ArrayCursor[A]
Creates an cursor returning an interval of the values produced by this cursor.
Creates an cursor returning an interval of the values produced by this cursor.
- from
the index of the first element in this cursor which forms part of the slice.
- until
the index of the first element following the slice.
- returns
a cursor which advances this cursor past the first
from
elements usingdrop
, and then takesuntil - from
elements, usingtake
- Definition Classes
- ArrayCursor → BatchCursor
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def take(n: Int): ArrayCursor[A]
Creates a new cursor that will only emit the first
n
values of this cursor.Creates a new cursor that will only emit the first
n
values of this cursor.- n
is the number of values to take
- returns
a cursor producing only of the first
n
values of this cursor, or else the whole sequence, if it produces fewer thann
values.
- Definition Classes
- ArrayCursor → BatchCursor
- def toArray[B >: A](implicit arg0: ClassTag[B]): Array[B]
Converts this cursor into an
Array
, consuming it in the process.Converts this cursor into an
Array
, consuming it in the process.- Definition Classes
- BatchCursor
- def toBatch: Batch[A]
Converts this cursor into a reusable array-backed Batch, consuming it in the process.
Converts this cursor into a reusable array-backed Batch, consuming it in the process.
- Definition Classes
- ArrayCursor → BatchCursor
- def toIterator: Iterator[A]
Converts this cursor into a Scala
Iterator
.Converts this cursor into a Scala
Iterator
.- Definition Classes
- ArrayCursor → BatchCursor
- def toList: List[A]
Converts this cursor into a Scala immutable
List
, consuming it in the process.Converts this cursor into a Scala immutable
List
, consuming it in the process.- Definition Classes
- BatchCursor
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
This is the API documentation for the Monix library.
Package Overview
monix.execution exposes lower level primitives for dealing with asynchronous execution:
Atomic
types, as alternative tojava.util.concurrent.atomic
monix.catnap exposes pure abstractions built on top of the Cats-Effect type classes:
monix.eval is for dealing with evaluation of results, thus exposing Task and Coeval.
monix.reactive exposes the
Observable
pattern:Observable
implementationsmonix.tail exposes Iterant for purely functional pull based streaming:
Batch
andBatchCursor
, the alternatives to Scala'sIterable
andIterator
respectively that we are using within Iterant's encodingYou can control evaluation with type you choose - be it Task, Coeval, cats.effect.IO or your own as long as you provide correct cats-effect or cats typeclass instance.