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
class MutableState<T> : State<T>

Caller-owned observable value whose reads and writes require its construction execution owner. This is the physical construction thread unless a runtime explicitly creates it in a serial ownership scope. Equal assignments do not invalidate observers; changed assignments invalidate every observing screen. Screen evaluation and guarded equality reject mutation before changing the value. A throwing equality comparison preserves the previous value and propagates the original failure. Create this value outside screen evaluation so rebuilding a screen does not reset it.

Link copied to clipboard
interface State<out T>

Read-only view of an observable value owned by its construction thread. Reading during screen evaluation records a dependency of that screen. Implementations reject access during a guarded equality comparison or from another thread. The caller owns the value and its lifetime independently of observing screens.

Link copied to clipboard
class StateObservation(beforeMutation: () -> Unit, afterMutation: () -> Unit, invalidated: () -> Unit, validateMutation: () -> Unit) : AutoCloseable

Runtime-owned dependency set for one owner-confined screen evaluator. Successful evaluation replaces dependencies; failed evaluation retains them until terminal cleanup. Closing releases every dependency without closing the caller-owned state and is idempotent.

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.

Link copied to clipboard
fun <T> mutableStateOf(initialValue: T): MutableState<T>

Creates a caller-owned observable value under the current execution owner. Retain it outside screen evaluation; equal assignments leave observing screens clean.