pub struct TerminationMonitorWith<B: Behavior, Target: TerminationObservationTarget<B>> { /* private fields */ }Expand description
Observe one peer and apply its terminal report to complete behavior actions.
Unlike crate::Watch, the reaction returns the wrapped behavior’s full
Actions. Cleanup communications, lifecycle publication, fresh
creations, and termination therefore remain explicit behavior decisions.
The selected target owns either late-bound logical-name observation or
exact-incarnation observation; the runtime delivers the target’s declared
typed report through the interpreter-request return path.
Reactions are infallible because they receive mutable access to B: a
fallible callback could change B and then reject the same report, violating
transition atomicity. Ordinary delegated B transitions retain B::Error.
fn fallible(_: &mut App, _: behavior_actors::PeerStopped<behavior::MailAddr>) -> behavior::BehaviorActed<App> {
Ok(behavior::Actions::cont())
}
let _ = behavior_actors::TerminationMonitor::new(App, behavior::MailAddr(1), fallible);Implementations§
Source§impl<B: Behavior> TerminationMonitorWith<B, LogicalTerminationTarget<B>>
impl<B: Behavior> TerminationMonitorWith<B, LogicalTerminationTarget<B>>
Sourcepub const fn new(
inner: B,
peer: BehaviorAddr<B>,
on_stopped: TerminationReaction<B>,
) -> Self
pub const fn new( inner: B, peer: BehaviorAddr<B>, on_stopped: TerminationReaction<B>, ) -> Self
Construct an action-producing observation definition.
Source§impl<B, P> TerminationMonitorWith<B, EstablishedTerminationTarget<B, P>>
impl<B, P> TerminationMonitorWith<B, EstablishedTerminationTarget<B, P>>
pub fn established( inner: B, request: ObserveEstablished<P>, react: EstablishedTerminationReaction<B, P>, ) -> Self
Sourcepub fn take_cancellation(&mut self) -> Option<CancelObservation<P>>
pub fn take_cancellation(&mut self) -> Option<CancelObservation<P>>
Transfer the target’s one cancellation request for an enclosing Actions lane.
Source§impl<B: Behavior, Target: TerminationObservationTarget<B>> TerminationMonitorWith<B, Target>
impl<B: Behavior, Target: TerminationObservationTarget<B>> TerminationMonitorWith<B, Target>
Sourcepub fn observation(&self) -> TerminationObservation
pub fn observation(&self) -> TerminationObservation
Return whether this monitor awaits or has consumed its terminal report.
Sourcepub fn into_parts(self) -> (B, Target)
pub fn into_parts(self) -> (B, Target)
Recover the exact inner behavior and sole current observation target.