eventDrivenStateContainer

fun <T> eventDrivenStateContainer(initialState: T, validator: StateValidator<T> = NoOpValidator(), builder: EventDrivenStateContainer.Builder<T>.() -> Unit): EventDrivenStateContainer<T>

Creates an event-driven state container with a builder pattern.

This is useful when you need event-based state management but don't require the full complexity of a state machine with multiple states.

Example usage:

sealed interface CounterEvent : StateEvent {
data object Increment : CounterEvent
data object Decrement : CounterEvent
}

val container = eventDrivenStateContainer(CounterState()) {
addHandler<CounterEvent.Increment> { state, _ ->
state.copy(count = state.count + 1)
}

addHandler<CounterEvent.Decrement> { state, _ ->
state.copy(count = state.count - 1)
}
}

Return

A new EventDrivenStateContainer instance

Parameters

T

The type of state being managed

initialState

The initial state of the container

validator

Optional validator for state validation (defaults to NoOpValidator)

builder

Configuration block for setting up event handlers