ActionLens<GlobalAction, LocalAction> typedef

ActionLens<GlobalAction, LocalAction> = ({GlobalAction Function(LocalAction localAction) embed, LocalAction? Function(GlobalAction action) extract})

A bidirectional accessor for filtering and embedding a LocalAction within a GlobalAction.

Used with Reducer.pullback to route global actions to local reducers.

  • extract returns the local action if the global action matches, or null to skip.
  • embed wraps a local action into a global action.
ActionLens<AppAction, CounterAction> counterActionLens = (
  extract: (a) => switch (a) { AppAction.counter(a) => a, _ => null },
  embed: (a) => AppAction.counter(a),
);

Implementation

typedef ActionLens<GlobalAction, LocalAction> = ({
  LocalAction? Function(GlobalAction action) extract,
  GlobalAction Function(LocalAction localAction) embed,
});