Package me.aartikov.replica.algebra

Functions

Link copied to clipboard
fun <K : Any, T : Any> associate(replicaProvider: (K) -> Replica<T>): KeyedReplica<K, T>

Creates KeyedReplica by providing Replica for each given key.

Link copied to clipboard
fun <T1 : Any, T2 : Any, R : Any> combine(    replica1: Replica<T1>,     replica2: Replica<T2>,     transform: (T1, T2) -> R): Replica<R>

Combines two replicas to a single replica. Data is merged only when all replicas have loaded data.

fun <T1 : Any, T2 : Any, T3 : Any, R : Any> combine(    replica1: Replica<T1>,     replica2: Replica<T2>,     replica3: Replica<T3>,     transform: (T1, T2, T3) -> R): Replica<R>

Combines three replicas to a single replica. Data is merged only when all replicas have loaded data.

fun <T1 : Any, T2 : Any, T3 : Any, T4 : Any, R : Any> combine(    replica1: Replica<T1>,     replica2: Replica<T2>,     replica3: Replica<T3>,     replica4: Replica<T4>,     transform: (T1, T2, T3, T4) -> R): Replica<R>

Combines four replicas to a single replica. Data is merged only when all replicas have loaded data.

fun <T1 : Any, T2 : Any, T3 : Any, T4 : Any, T5 : Any, R : Any> combine(    replica1: Replica<T1>,     replica2: Replica<T2>,     replica3: Replica<T3>,     replica4: Replica<T4>,     replica5: Replica<T5>,     transform: (T1, T2, T3, T4, T5) -> R): Replica<R>

Combines five replicas to a single replica. Data is merged only when all replicas have loaded data.

Link copied to clipboard
fun <T1 : Any, T2 : Any, R : Any> combineEager(    replica1: Replica<T1>,     replica2: Replica<T2>,     transform: (T1?, T2?) -> R): Replica<R>

Combines two replicas to a single replica. Data is merged when any of replicas has loaded data.

fun <T1 : Any, T2 : Any, T3 : Any, R : Any> combineEager(    replica1: Replica<T1>,     replica2: Replica<T2>,     replica3: Replica<T3>,     transform: (T1?, T2?, T3?) -> R): Replica<R>

Combines three replicas to a single replica. Data is merged when any of replicas has loaded data.

fun <T1 : Any, T2 : Any, T3 : Any, T4 : Any, R : Any> combineEager(    replica1: Replica<T1>,     replica2: Replica<T2>,     replica3: Replica<T3>,     replica4: Replica<T4>,     transform: (T1?, T2?, T3?, T4?) -> R): Replica<R>

Combines four replicas to a single replica. Data is merged when any of replicas has loaded data.

fun <T1 : Any, T2 : Any, T3 : Any, T4 : Any, T5 : Any, R : Any> combineEager(    replica1: Replica<T1>,     replica2: Replica<T2>,     replica3: Replica<T3>,     replica4: Replica<T4>,     replica5: Replica<T5>,     transform: (T1?, T2?, T3?, T4?, T5?) -> R): Replica<R>

Combines five replicas to a single replica. Data is merged when any of replicas has loaded data.

Link copied to clipboard
fun <T : Any> constReplica(data: T): Replica<T>

Creates Replica with a const data.

Link copied to clipboard
fun <T : Any> flowReplica(flow: Flow<T>): Replica<T>

Creates a replica from Flow of data.

Link copied to clipboard
fun <K : Any, T : Any, R : Any> KeyedReplica<K, T>.map(transform: (T) -> R): KeyedReplica<K, R>

Transforms keyed replica data with a transform function.

fun <T : Any, R : Any> Replica<T>.map(transform: (T) -> R): Replica<R>

Transforms replica data with a transform function.

Link copied to clipboard
fun <K : Any, T : Any> KeyedReplica<K, T>.withKey(key: K): Replica<T>

Converts KeyedReplica to Replica by fixing a key.