Struct ractor::actor::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,
impl<TActor> ActorRuntime<TActor>where
TActor: Actor,
sourcepub async fn spawn(
name: Option<ActorName>,
handler: TActor,
startup_args: TActor::Arguments
) -> Result<(ActorRef<TActor::Msg>, JoinHandle<()>), SpawnErr>
pub async fn spawn( name: Option<ActorName>, handler: TActor, startup_args: TActor::Arguments ) -> Result<(ActorRef<TActor::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 printinghandler
The Actor defining the logic for this actorstartup_args
: Arguments passed to thepre_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
sourcepub async fn spawn_linked(
name: Option<ActorName>,
handler: TActor,
startup_args: TActor::Arguments,
supervisor: ActorCell
) -> Result<(ActorRef<TActor::Msg>, JoinHandle<()>), SpawnErr>
pub async fn spawn_linked( name: Option<ActorName>, handler: TActor, startup_args: TActor::Arguments, supervisor: ActorCell ) -> Result<(ActorRef<TActor::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 printinghandler
The Actor defining the logic for this actorstartup_args
: Arguments passed to thepre_start
call of the Actor to facilitate startup and initial state creationsupervisor
: 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
sourcepub fn spawn_instant(
name: Option<ActorName>,
handler: TActor,
startup_args: TActor::Arguments
) -> Result<(ActorRef<TActor::Msg>, JoinHandle<Result<JoinHandle<()>, SpawnErr>>), SpawnErr>
pub fn spawn_instant( name: Option<ActorName>, handler: TActor, startup_args: TActor::Arguments ) -> Result<(ActorRef<TActor::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 printinghandler
The Actor defining the logic for this actorstartup_args
: Arguments passed to thepre_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
sourcepub fn spawn_linked_instant(
name: Option<ActorName>,
handler: TActor,
startup_args: TActor::Arguments,
supervisor: ActorCell
) -> Result<(ActorRef<TActor::Msg>, JoinHandle<Result<JoinHandle<()>, SpawnErr>>), SpawnErr>
pub fn spawn_linked_instant( name: Option<ActorName>, handler: TActor, startup_args: TActor::Arguments, supervisor: ActorCell ) -> Result<(ActorRef<TActor::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 printinghandler
The Actor defining the logic for this actorstartup_args
: Arguments passed to thepre_start
call of the Actor to facilitate startup and initial state creationsupervisor
: 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