Struct ractor::actor::ActorRuntime

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

ActorRuntime is a struct which represents the actor. This struct is consumed by the start operation, but results in an ActorRef to communicate and operate with

Implementations§

source§

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

source

pub async fn spawn( name: Option<ActorName>, handler: TActor, startup_args: TActor::Arguments ) -> Result<(ActorRef<TActor>, 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<ActorName>, handler: TActor, startup_args: TActor::Arguments, supervisor: ActorCell ) -> Result<(ActorRef<TActor>, 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<ActorName>, handler: TActor, startup_args: TActor::Arguments ) -> Result<(ActorRef<TActor>, 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<ActorName>, handler: TActor, startup_args: TActor::Arguments, supervisor: ActorCell ) -> Result<(ActorRef<TActor>, 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

Auto Trait Implementations§

§

impl<TActor> !RefUnwindSafe for ActorRuntime<TActor>

§

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>

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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, U> Into<U> for Twhere 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 Twhere 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 Twhere U: Into<T>,

§

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 Twhere U: TryFrom<T>,

§

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.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V

source§

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