uniflow-core / io.uniflow.core.flow / DataPublisher

DataPublisher

interface DataPublisher : StatePublisher, EventPublisher

Component that handle State & Event

notifyStateUpdate - help notify a data update via event, instead of publishing a state useful when need to notify part data update (like lists ...)

Functions

notifyStateUpdate

open suspend fun notifyStateUpdate(state: UIState, event: UIEvent): Unit

Inherited Functions

getState

abstract fun getState(): UIState

publishEvent

abstract suspend fun publishEvent(event: UIEvent): Unit

publishState

abstract suspend fun publishState(state: UIState, pushStateUpdate: Boolean = true): Unit

sendEvent

open suspend fun sendEvent(event: UIEvent): Unit
open suspend fun sendEvent(event: () -> UIEvent): Unit

setState

open suspend fun setState(state: UIState): Unit
open suspend fun setState(state: () -> UIState): Unit

Extension Functions

getStateOrNull

fun <T : UIState> StatePublisher.getStateOrNull(): T?

Get state for type T or return null

letOnState

fun <T : UIState, R : Any> StatePublisher.letOnState(code: (T) -> R): R?

Let execute block on given state T if not null, return a Result R

onState

fun <T : UIState> StatePublisher.onState(code: (T) -> Unit): Unit

Let execute block on given state T if not null