Skip to main content

ActorRuntime

Struct ActorRuntime 

Source
pub struct ActorRuntime<TActor>
where TActor: Actor,
{ /* private fields */ }
Expand description

ActorRuntime is a struct which represents the processing actor.

This struct is consumed by the start operation, but results in an ActorRef to communicate and operate with along with the JoinHandle representing the actor’s async processing loop.

Implementations§

Source§

impl<TActor> ActorRuntime<TActor>
where TActor: Actor,

Source

pub async fn spawn( name: Option<String>, handler: TActor, startup_args: <TActor as Actor>::Arguments, ) -> Result<(ActorRef<<TActor as Actor>::Msg>, JoinHandle<()>), SpawnErr>

Spawn an actor, which is unsupervised, automatically starting the actor

  • name: A name to give the actor. Useful for global referencing or debug printing
  • handler The Actor defining the logic for this actor
  • startup_args: Arguments passed to the pre_start call of the Actor to facilitate startup and initial state creation

Returns a [Ok((ActorRef, JoinHandle<()>))] upon successful start, denoting the actor reference along with the join handle which will complete when the actor terminates. Returns [Err(SpawnErr)] if the actor failed to start

Source

pub async fn spawn_linked( name: Option<String>, handler: TActor, startup_args: <TActor as Actor>::Arguments, supervisor: ActorCell, ) -> Result<(ActorRef<<TActor as Actor>::Msg>, JoinHandle<()>), SpawnErr>

Spawn an actor with a supervisor, automatically starting the actor

  • name: A name to give the actor. Useful for global referencing or debug printing
  • handler The Actor defining the logic for this actor
  • startup_args: Arguments passed to the pre_start call of the Actor to facilitate startup and initial state creation
  • supervisor: The ActorCell which is to become the supervisor (parent) of this actor

Returns a [Ok((ActorRef, JoinHandle<()>))] upon successful start, denoting the actor reference along with the join handle which will complete when the actor terminates. Returns [Err(SpawnErr)] if the actor failed to start

Source

pub fn spawn_instant( name: Option<String>, handler: TActor, startup_args: <TActor as Actor>::Arguments, ) -> Result<(ActorRef<<TActor as Actor>::Msg>, JoinHandle<Result<JoinHandle<()>, SpawnErr>>), SpawnErr>

Spawn an actor instantly, not waiting on the actor’s pre_start routine. This is helpful for actors where you want access to the send messages into the actor’s message queue without waiting on an asynchronous context.

WARNING Failures in the pre_start routine need to be waited on in the join handle since they will NOT fail the spawn operation in this context

  • name: A name to give the actor. Useful for global referencing or debug printing
  • handler The Actor defining the logic for this actor
  • startup_args: Arguments passed to the pre_start call of the Actor to facilitate startup and initial state creation

Returns a [Ok((ActorRef, JoinHandle<Result<JoinHandle<()>, SpawnErr>>))] upon successful creation of the message queues, so you can begin sending messages. However the associated JoinHandle contains the inner information around if the actor successfully started or not in it’s pre_start routine. Returns [Err(SpawnErr)] if the actor name is already allocated

Source

pub fn spawn_linked_instant( name: Option<String>, handler: TActor, startup_args: <TActor as Actor>::Arguments, supervisor: ActorCell, ) -> Result<(ActorRef<<TActor as Actor>::Msg>, JoinHandle<Result<JoinHandle<()>, SpawnErr>>), SpawnErr>

Spawn an actor instantly with supervision, not waiting on the actor’s pre_start routine. This is helpful for actors where you want access to the send messages into the actor’s message queue without waiting on an asynchronous context.

WARNING Failures in the pre_start routine need to be waited on in the join handle since they will NOT fail the spawn operation in this context. Additionally the supervision tree will NOT be linked until the pre_start completes so there is a chance an actor is lost during pre_start and not successfully started unless it’s specifically handled by the caller by awaiting later.

  • name: A name to give the actor. Useful for global referencing or debug printing
  • handler The Actor defining the logic for this actor
  • startup_args: Arguments passed to the pre_start call of the Actor to facilitate startup and initial state creation
  • supervisor: The ActorCell which is to become the supervisor (parent) of this actor

Returns a [Ok((ActorRef, JoinHandle<Result<JoinHandle<()>, SpawnErr>>))] upon successful creation of the message queues, so you can begin sending messages. However the associated JoinHandle contains the inner information around if the actor successfully started or not in it’s pre_start routine. Returns [Err(SpawnErr)] if the actor name is already allocated

Trait Implementations§

Source§

impl<TActor> Debug for ActorRuntime<TActor>
where TActor: Actor,

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<TActor> Freeze for ActorRuntime<TActor>
where TActor: Freeze,

§

impl<TActor> RefUnwindSafe for ActorRuntime<TActor>
where TActor: RefUnwindSafe,

§

impl<TActor> Send for ActorRuntime<TActor>

§

impl<TActor> Sync for ActorRuntime<TActor>

§

impl<TActor> Unpin for ActorRuntime<TActor>
where TActor: Unpin,

§

impl<TActor> UnwindSafe for ActorRuntime<TActor>
where TActor: UnwindSafe,

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
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,