event Driven State Container
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)
}
}Content copied to clipboard
Return
A new EventDrivenStateContainer instance
Parameters
T
The type of state being managed
initial State
The initial state of the container
validator
Optional validator for state validation (defaults to NoOpValidator)
builder
Configuration block for setting up event handlers