bloc_advanced_tools library

BLoC Advanced Tools

Classes

AsyncCubitReactor<S, C extends Cubit<S>>
Wrapper for a cubit that asynchronously react to its state changes May skip states if they happen during processing of a previous state change but will always react to the initial state and the most recent state
AsyncCubitReactorState<T extends StateMachineState<T>, S, C extends Cubit<S>>
A state machine state that waits for a cubit to change state and performs a transition based on the cubit state
AsyncCubitReactorStateContext<S, C extends Cubit<S>>
AsyncTransformerCubit<T, S>
A cubit with state T that wraps another input cubit of state S and produces T fro S via an asynchronous transform closure The input cubit becomes 'owned' by the AsyncTransformerCubit and will be closed when the AsyncTransformerCubit closes.
BlocBusyState<S>
A state wrapper that adds a 'busy' field to any state
BlocMapCubit<K, V, B extends BlocBase<V>>
Streaming container cubit that is a map from some immutable key to a some other cubit's output state. Output state for this container cubit is an immutable map of the key to the output state of the contained cubits.
BlocUpdater<B extends BlocBase, A>
FutureCubit<State>
Simple base class for a cubit that initialized based on the result of a Future.
StateMachineCubit<S extends StateMachineState<S>>
A state machine that reactively responds to state changes
StateMachineState<S extends StateMachineState<S>>
State machine states must implement this interface
StateMapFollowable<S extends Object, K, V>
Interface that allows a StateMapFollower to follow some other class's state changes
StreamWrapperCubit<State>
Simple base class to wrap a stream of states with a Cubit
TransformerCubit<T, S, C extends Cubit<S>>
A wrapper cubit that applies a state transformer function to all input states of the wrapped cubit to produce a transformed state

Mixins

BlocBusyWrapper<S>
A wrapper for a bloc or cubit that wraps its state with a 'busy' state to easily add a means of ensuring blocs can report on when they are processing a change. Also provides methods to ensure only a single change is happening at once on the bloc.
StateMachineEndState<S extends StateMachineState<S>>
State machine state that is a generic end state and can not transition
StateMapFollower<S extends Object, K, V>
Mixin that automatically keeps two blocs/cubits in sync with each other Useful for having a BlocMapCubit 'follow' the state of another input cubit. As the state of the input cubit changes, the BlocMapCubit can add/remove mapped Cubits that automatically process the input state reactively.

Extensions

BlocTools on BlocBase<State>

Typedefs

BlocMapState<K, V> = IMap<K, V>