dimapOnState<Sn> method

Decider<C, Sn, E> dimapOnState<Sn>({
  1. required S fl(
    1. Sn
    ),
  2. required Sn fr(
    1. S
    ),
})

Adapts this decider's state type in both directions.

  • fl: transforms incoming state Sn to S
  • fr: transforms resulting state S to Sn

Implementation

Decider<C, Sn, E> dimapOnState<Sn>({
  required S Function(Sn) fl,
  required Sn Function(S) fr,
}) {
  return Decider<C, Sn, E>(
    decide: (command, state) => decide(command, fl(state)),
    evolve: (state, event) => fr(evolve(fl(state), event)),
    initialState: fr(initialState),
  );
}