Skip to main content

Transition

Type Alias Transition 

Source
pub type Transition<'a> = dyn Fn(&State) -> Result<State, NotCurrentHolder> + Send + Sync + 'a;
Expand description

A pure kernel transition decision — a lifecycle on_X — passed to the transition port Registry::apply (and its async twin). The same type is used by both bindings, so the port is literally one shape.

The Send + Sync bound is on the transition closure: it lets a backend hold the decision across its own atomic scope or hand it to a worker thread. It does not make the async binding’s apply future Send — future coloring stays the consumer’s (the async binding is deliberately Send-agnostic at its futures). A backend that needs a Send apply future satisfies that at its own concrete call site, not from this bound.