Package-level declarations

Types

Link copied to clipboard
interface DerivedStateSource<out T> : StateSource<T>

Runtime capability for a pure, single-input derived observation. The source and transformation are immutable and caller-owned; runtimes evaluate committed inputs on their owner thread. Implementations must also implement ordinary StateSource.subscribe with its complete lifetime contract.

Link copied to clipboard

Identifies one observation in the ordered history of a state source.

Link copied to clipboard
data class StateSnapshot<out T>(val revision: StateRevision, val value: T)

Carries a source observation and its publication revision.

Link copied to clipboard
fun interface StateSource<out T>

An externally owned source of revisioned state snapshots.

Link copied to clipboard
class StateSubscription<out T>(val initialSnapshot: StateSnapshot<T>, closeAction: () -> Unit) : AutoCloseable

The atomic result of subscribing to a StateSource.

Functions

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

Creates a lazy, caller-owned projection of this source, supporting nullable values and chained projections. Construction does not subscribe or evaluate transform. Keep the returned identity when consumers share a projection. The transformation must be deterministic, side-effect-free, and return normally; ordinary subscriptions may transform on any notifying thread. Ordinary subscriptions preserve every revision, including equal results. Retained UI consumers instead share the upstream subscription, transform a frame-committed input, and suppress dependent UI work when the transformed result is equal by ==. No source history or global cache is retained. Heavy work and I/O belong outside the transformation.