ractor_supervisor::supervisor

Struct Supervisor

Source
pub struct Supervisor;
Expand description

The supervisor actor itself.
Spawns its children in post_start, listens for child failures, and restarts them if needed.
If meltdown occurs, it returns an error to end abnormally (thus skipping post_stop).

Trait Implementations§

Source§

impl Actor for Supervisor

Source§

fn handle<'life0, 'life1, 'async_trait>( &'life0 self, myself: ActorRef<Self::Msg>, msg: SupervisorMsg, state: &'life1 mut SupervisorState, ) -> Pin<Box<dyn Future<Output = Result<(), ActorProcessingErr>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

The main message handler: we respond to “spawn child X” or “inspect state”. Each time we finish, we store final state in a global map (test usage only).

Source§

fn handle_supervisor_evt<'life0, 'life1, 'async_trait>( &'life0 self, myself: ActorRef<Self::Msg>, evt: SupervisionEvent, state: &'life1 mut SupervisorState, ) -> Pin<Box<dyn Future<Output = Result<(), ActorProcessingErr>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Respond to supervision events from child actors.

  • ActorTerminated => treat as normal exit
  • ActorFailed => treat as abnormal
Source§

fn post_stop<'life0, 'life1, 'async_trait>( &'life0 self, _myself: ActorRef<Self::Msg>, _state: &'life1 mut SupervisorState, ) -> Pin<Box<dyn Future<Output = Result<(), ActorProcessingErr>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Called if the supervisor stops normally (e.g. .stop(None)). For meltdown stops, we skip this, but we still store final state for testing.

Source§

type Msg = SupervisorMsg

The message type for this actor
Source§

type State = SupervisorState

The type of state this actor manages internally
Source§

type Arguments = SupervisorArguments

Initialization arguments
Source§

fn pre_start<'life0, 'async_trait>( &'life0 self, _myself: ActorRef<Self::Msg>, args: Self::Arguments, ) -> Pin<Box<dyn Future<Output = Result<Self::State, ActorProcessingErr>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Invoked when an actor is being started by the system. Read more
Source§

fn post_start<'life0, 'life1, 'async_trait>( &'life0 self, myself: ActorRef<Self::Msg>, state: &'life1 mut SupervisorState, ) -> Pin<Box<dyn Future<Output = Result<(), ActorProcessingErr>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Invoked after an actor has started. Read more
Source§

fn spawn<'async_trait>( name: Option<String>, handler: Self, startup_args: Self::Arguments, ) -> Pin<Box<dyn Future<Output = Result<(ActorRef<Self::Msg>, JoinHandle<()>), SpawnErr>> + Send + 'async_trait>>
where Self: 'async_trait,

Spawn an actor of this type, which is unsupervised, automatically starting Read more
Source§

fn spawn_linked<'async_trait>( name: Option<String>, handler: Self, startup_args: Self::Arguments, supervisor: ActorCell, ) -> Pin<Box<dyn Future<Output = Result<(ActorRef<Self::Msg>, JoinHandle<()>), SpawnErr>> + Send + 'async_trait>>
where Self: 'async_trait,

Spawn an actor of this type with a supervisor, automatically starting the actor Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Message for T
where T: Any + Send + 'static,

Source§

fn from_boxed(m: BoxedMessage) -> Result<Self, BoxedDowncastErr>

Convert a BoxedMessage to this concrete type
Source§

fn box_message(self, pid: &ActorId) -> Result<BoxedMessage, BoxedDowncastErr>

Convert this message to a BoxedMessage
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> State for T
where T: Any + Send + 'static,