android-components / mozilla.components.support.base.observer / ConsumableStream

ConsumableStream

class ConsumableStream<T> (source)

A generic wrapper for a stream of values that can be consumed. Values will be consumed first in, first out.

Functions

append

fun append(vararg values: T): ConsumableStream<T>

Copies the stream and appends the provided values.

consumeAll

fun consumeAll(consumer: (value: T) -> Boolean): Boolean

Invokes the given lambda for each consumable value and marks the values as consumed if the lambda returns true.

consumeAllBy

fun consumeAllBy(consumers: List<(T) -> Boolean>): Boolean

Invokes the given list of lambdas for each consumable value and marks the values as consumed if at least one lambda returns true.

consumeNext

fun consumeNext(consumer: (value: T) -> Boolean): Boolean

Invokes the given lambda with the next consumable value and marks the value as consumed if the lambda returns true.

consumeNextBy

fun consumeNextBy(consumers: List<(T) -> Boolean>): Boolean

Invokes the given list of lambdas with the next consumable value and marks the value as consumed if at least one lambda returns true.

isConsumed

fun isConsumed(): Boolean

Returns true if all values in this stream were consumed, otherwise false.

isEmpty

fun isEmpty(): Boolean

Returns true if the stream is empty, otherwise false.

remove

fun remove(value: T): ConsumableStream<T>

Copies the stream but removes all consumables equal to the provided value.

removeConsumed

fun removeConsumed(): ConsumableStream<T>

Copies the stream but removes all consumed values.