pub struct Compose<B> { /* private fields */ }Implementations§
Source§impl<S, A, M, Sends, Br, E, I, F> Compose<BehaviorFn<S, A, M, Sends, Br, E, I, F>>
impl<S, A, M, Sends, Br, E, I, F> Compose<BehaviorFn<S, A, M, Sends, Br, E, I, F>>
Sourcepub fn from_fns(
state: S,
initialize: I,
transition: F,
) -> Compose<BehaviorFn<S, A, M, Sends, Br, E, I, F>>
pub fn from_fns( state: S, initialize: I, transition: F, ) -> Compose<BehaviorFn<S, A, M, Sends, Br, E, I, F>>
Define a concrete behavior from explicit initialization and user-event folds, ready for typed wrapper composition.
Source§impl<B> Compose<B>where
B: Behavior,
impl<B> Compose<B>where
B: Behavior,
pub fn from_behavior(behavior: B) -> Compose<B>
pub fn build(self) -> B
pub fn behavior(&self) -> &B
Sourcepub fn stop_on_shutdown(self) -> Compose<StopOnShutdown<B>>
pub fn stop_on_shutdown(self) -> Compose<StopOnShutdown<B>>
Stop normally when a typed shutdown request is folded.
Sourcepub fn finalize_on_shutdown(
self,
finalize: fn(&mut B, ShutdownRequested) -> Result<Actions<<B as Behavior>::Addr, <B as Behavior>::Ph, <B as Behavior>::Sends, <B as Behavior>::Birth>, <B as Behavior>::Error>,
) -> Compose<FinalizeOnShutdown<B>>
pub fn finalize_on_shutdown( self, finalize: fn(&mut B, ShutdownRequested) -> Result<Actions<<B as Behavior>::Addr, <B as Behavior>::Ph, <B as Behavior>::Sends, <B as Behavior>::Birth>, <B as Behavior>::Error>, ) -> Compose<FinalizeOnShutdown<B>>
Apply one final pure fold, retain its sends and creations, and stop normally regardless of the fold’s become verdict.
Sourcepub fn watch(
self,
peer: <B as Behavior>::Addr,
on_stopped: fn(&mut B, <B as Behavior>::Addr, &Result<Exit<<B as Behavior>::Addr>, Crash>) -> Result<Step<Never, Exit<<B as Behavior>::Addr>>, <B as Behavior>::Error>,
) -> Compose<Watch<B>>
pub fn watch( self, peer: <B as Behavior>::Addr, on_stopped: fn(&mut B, <B as Behavior>::Addr, &Result<Exit<<B as Behavior>::Addr>, Crash>) -> Result<Step<Never, Exit<<B as Behavior>::Addr>>, <B as Behavior>::Error>, ) -> Compose<Watch<B>>
Observe a peer and apply a pure reaction when it stops.
Sourcepub fn deadline(
self,
when: Option<Instant>,
on_reached: fn(&mut B) -> Result<Step<Never, Exit<<B as Behavior>::Addr>>, <B as Behavior>::Error>,
) -> Compose<Deadline<B>>
pub fn deadline( self, when: Option<Instant>, on_reached: fn(&mut B) -> Result<Step<Never, Exit<<B as Behavior>::Addr>>, <B as Behavior>::Error>, ) -> Compose<Deadline<B>>
Apply a pure reaction when the given absolute time is reached.
§Panics
Panics if one specification composes more than u64::MAX timer
capabilities.
Sourcepub fn receive_timeout(
self,
after: Duration,
on_elapsed: fn(&mut B) -> Result<Actions<<B as Behavior>::Addr, <B as Behavior>::Ph, <B as Behavior>::Sends, <B as Behavior>::Birth>, <B as Behavior>::Error>,
) -> Compose<ReceiveTimeout<B>>
pub fn receive_timeout( self, after: Duration, on_elapsed: fn(&mut B) -> Result<Actions<<B as Behavior>::Addr, <B as Behavior>::Ph, <B as Behavior>::Sends, <B as Behavior>::Birth>, <B as Behavior>::Error>, ) -> Compose<ReceiveTimeout<B>>
Notify the behavior once after an idle period containing no successful user communication.
Initialization and each successful continuing user fold emit a relative
schedule. Service events never reset inactivity. A matching delivery is
consumed before on_elapsed runs, and a continuing reaction remains
unarmed until another successful continuing user communication.
§Panics
Panics if one specification composes more than u64::MAX timer
capabilities.
Sourcepub fn stash(
self,
route: fn(&<B as Behavior>::Msg) -> StashRoute,
) -> Compose<Stash<B>>
pub fn stash( self, route: fn(&<B as Behavior>::Msg) -> StashRoute, ) -> Compose<Stash<B>>
Hold messages selected by route and replay them on Release.
Sourcepub fn children<C>(
self,
fleet: (usize, fn(usize) -> C),
) -> Compose<Supervisor<B, C>>
pub fn children<C>( self, fleet: (usize, fn(usize) -> C), ) -> Compose<Supervisor<B, C>>
Create a supervised child topology. Concrete proxy and monitor types remain hidden in the returned typestate.