pub struct Factory<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue>where
TKey: JobKey,
TMsg: Message,
TWorkerStart: Message,
TWorker: Actor<Msg = WorkerMessage<TKey, TMsg>, Arguments = WorkerStartContext<TKey, TMsg, TWorkerStart>>,
TRouter: Router<TKey, TMsg>,
TQueue: Queue<TKey, TMsg>,{ /* private fields */ }Expand description
Factory definition.
This is a placeholder instance which contains all of the type specifications for the factories properties
Trait Implementations§
Source§impl<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue> Actor for Factory<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue>where
TKey: JobKey,
TMsg: Message,
TWorkerStart: Message,
TWorker: Actor<Msg = WorkerMessage<TKey, TMsg>, Arguments = WorkerStartContext<TKey, TMsg, TWorkerStart>>,
TRouter: Router<TKey, TMsg>,
TQueue: Queue<TKey, TMsg>,
impl<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue> Actor for Factory<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue>where
TKey: JobKey,
TMsg: Message,
TWorkerStart: Message,
TWorker: Actor<Msg = WorkerMessage<TKey, TMsg>, Arguments = WorkerStartContext<TKey, TMsg, TWorkerStart>>,
TRouter: Router<TKey, TMsg>,
TQueue: Queue<TKey, TMsg>,
Source§type Msg = FactoryMessage<TKey, TMsg>
type Msg = FactoryMessage<TKey, TMsg>
The message type for this actor
Source§type State = FactoryState<TKey, TMsg, TWorker, TWorkerStart, TRouter, TQueue>
type State = FactoryState<TKey, TMsg, TWorker, TWorkerStart, TRouter, TQueue>
The type of state this actor manages internally
Source§type Arguments = FactoryArguments<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue>
type Arguments = FactoryArguments<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue>
Initialization arguments
Source§fn pre_start<'life0, 'async_trait>(
&'life0 self,
myself: ActorRef<FactoryMessage<TKey, TMsg>>,
__arg2: <Factory<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue> as Actor>::Arguments,
) -> Pin<Box<dyn Future<Output = Result<<Factory<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue> as Actor>::State, Box<dyn Error + Send + Sync>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Factory<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue>: 'async_trait,
fn pre_start<'life0, 'async_trait>(
&'life0 self,
myself: ActorRef<FactoryMessage<TKey, TMsg>>,
__arg2: <Factory<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue> as Actor>::Arguments,
) -> Pin<Box<dyn Future<Output = Result<<Factory<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue> as Actor>::State, Box<dyn Error + Send + Sync>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Factory<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue>: '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<FactoryMessage<TKey, TMsg>>,
state: &'life1 mut <Factory<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue> as Actor>::State,
) -> Pin<Box<dyn Future<Output = Result<(), Box<dyn Error + Send + Sync>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Factory<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue>: 'async_trait,
fn post_start<'life0, 'life1, 'async_trait>(
&'life0 self,
myself: ActorRef<FactoryMessage<TKey, TMsg>>,
state: &'life1 mut <Factory<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue> as Actor>::State,
) -> Pin<Box<dyn Future<Output = Result<(), Box<dyn Error + Send + Sync>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Factory<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue>: 'async_trait,
Invoked after an actor has started. Read more
Source§fn post_stop<'life0, 'life1, 'async_trait>(
&'life0 self,
myself: ActorRef<<Factory<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue> as Actor>::Msg>,
state: &'life1 mut <Factory<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue> as Actor>::State,
) -> Pin<Box<dyn Future<Output = Result<(), Box<dyn Error + Send + Sync>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Factory<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue>: 'async_trait,
fn post_stop<'life0, 'life1, 'async_trait>(
&'life0 self,
myself: ActorRef<<Factory<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue> as Actor>::Msg>,
state: &'life1 mut <Factory<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue> as Actor>::State,
) -> Pin<Box<dyn Future<Output = Result<(), Box<dyn Error + Send + Sync>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Factory<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue>: 'async_trait,
Invoked after an actor has been stopped to perform final cleanup. In the
event the actor is terminated with Signal::Kill or has self-panicked,
post_stop won’t be called. Read moreSource§fn handle_supervisor_evt<'life0, 'life1, 'async_trait>(
&'life0 self,
myself: ActorRef<FactoryMessage<TKey, TMsg>>,
message: SupervisionEvent,
state: &'life1 mut <Factory<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue> as Actor>::State,
) -> Pin<Box<dyn Future<Output = Result<(), Box<dyn Error + Send + Sync>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Factory<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue>: 'async_trait,
fn handle_supervisor_evt<'life0, 'life1, 'async_trait>(
&'life0 self,
myself: ActorRef<FactoryMessage<TKey, TMsg>>,
message: SupervisionEvent,
state: &'life1 mut <Factory<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue> as Actor>::State,
) -> Pin<Box<dyn Future<Output = Result<(), Box<dyn Error + Send + Sync>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Factory<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue>: 'async_trait,
Handle the incoming supervision event. Unhandled panics will be captured and
sent the the supervisor(s). The default supervision behavior is to exit the
supervisor on any child exit. To override this behavior, implement this function. Read more
Source§fn handle<'life0, 'life1, 'async_trait>(
&'life0 self,
myself: ActorRef<FactoryMessage<TKey, TMsg>>,
message: FactoryMessage<TKey, TMsg>,
state: &'life1 mut <Factory<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue> as Actor>::State,
) -> Pin<Box<dyn Future<Output = Result<(), Box<dyn Error + Send + Sync>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Factory<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue>: 'async_trait,
fn handle<'life0, 'life1, 'async_trait>(
&'life0 self,
myself: ActorRef<FactoryMessage<TKey, TMsg>>,
message: FactoryMessage<TKey, TMsg>,
state: &'life1 mut <Factory<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue> as Actor>::State,
) -> Pin<Box<dyn Future<Output = Result<(), Box<dyn Error + Send + Sync>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Factory<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue>: 'async_trait,
Handle the incoming message from the event processing loop. Unhandled panickes will be
captured and sent to the supervisor(s) 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,
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,
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
Source§impl<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue> Debug for Factory<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue>
impl<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue> Debug for Factory<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue>
Source§impl<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue> Default for Factory<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue>where
TKey: JobKey,
TMsg: Message,
TWorkerStart: Message,
TWorker: Actor<Msg = WorkerMessage<TKey, TMsg>, Arguments = WorkerStartContext<TKey, TMsg, TWorkerStart>>,
TRouter: Router<TKey, TMsg>,
TQueue: Queue<TKey, TMsg>,
impl<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue> Default for Factory<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue>where
TKey: JobKey,
TMsg: Message,
TWorkerStart: Message,
TWorker: Actor<Msg = WorkerMessage<TKey, TMsg>, Arguments = WorkerStartContext<TKey, TMsg, TWorkerStart>>,
TRouter: Router<TKey, TMsg>,
TQueue: Queue<TKey, TMsg>,
Auto Trait Implementations§
impl<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue> Freeze for Factory<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue>
impl<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue> RefUnwindSafe for Factory<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue>
impl<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue> Send for Factory<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue>
impl<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue> Sync for Factory<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue>
impl<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue> Unpin for Factory<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue>
impl<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue> UnsafeUnpin for Factory<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue>
impl<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue> UnwindSafe for Factory<TKey, TMsg, TWorkerStart, TWorker, TRouter, TQueue>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moreSource§impl<T> Message for T
impl<T> Message for T
Source§fn from_boxed(m: BoxedMessage) -> Result<Self, BoxedDowncastErr>
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>
fn box_message(self, pid: &ActorId) -> Result<BoxedMessage, BoxedDowncastErr>
Convert this message to a BoxedMessage
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ThreadLocalActor for T
impl<T> ThreadLocalActor for T
Source§type State = <T as Actor>::State
type State = <T as Actor>::State
The type of state this actor manages internally. This type
has no bound requirements, and needs to neither be Send nor
Sync when used in a ThreadLocalActor context.
Source§type Arguments = <T as Actor>::Arguments
type Arguments = <T as Actor>::Arguments
Initialization arguments. These must be Send as they are
sent to the pinned thread in order to startup the actor.
However the actor’s local ThreadLocalActor::State does
NOT need to be Send and neither does the actor instance.
Source§async fn pre_start(
&self,
myself: ActorRef<<T as ThreadLocalActor>::Msg>,
args: <T as ThreadLocalActor>::Arguments,
) -> Result<<T as ThreadLocalActor>::State, Box<dyn Error + Send + Sync>>
async fn pre_start( &self, myself: ActorRef<<T as ThreadLocalActor>::Msg>, args: <T as ThreadLocalActor>::Arguments, ) -> Result<<T as ThreadLocalActor>::State, Box<dyn Error + Send + Sync>>
Invoked when an actor is being started by the system. Read more
Source§async fn post_start(
&self,
myself: ActorRef<<T as ThreadLocalActor>::Msg>,
state: &mut <T as ThreadLocalActor>::State,
) -> Result<(), Box<dyn Error + Send + Sync>>
async fn post_start( &self, myself: ActorRef<<T as ThreadLocalActor>::Msg>, state: &mut <T as ThreadLocalActor>::State, ) -> Result<(), Box<dyn Error + Send + Sync>>
Invoked after an actor has started. Read more
Source§async fn handle(
&self,
myself: ActorRef<<T as ThreadLocalActor>::Msg>,
message: <T as ThreadLocalActor>::Msg,
state: &mut <T as ThreadLocalActor>::State,
) -> Result<(), Box<dyn Error + Send + Sync>>
async fn handle( &self, myself: ActorRef<<T as ThreadLocalActor>::Msg>, message: <T as ThreadLocalActor>::Msg, state: &mut <T as ThreadLocalActor>::State, ) -> Result<(), Box<dyn Error + Send + Sync>>
Handle the incoming message from the event processing loop. Unhandled panickes will be
captured and sent to the supervisor(s) Read more
Source§async fn handle_supervisor_evt(
&self,
myself: ActorRef<<T as ThreadLocalActor>::Msg>,
message: SupervisionEvent,
state: &mut <T as ThreadLocalActor>::State,
) -> Result<(), Box<dyn Error + Send + Sync>>
async fn handle_supervisor_evt( &self, myself: ActorRef<<T as ThreadLocalActor>::Msg>, message: SupervisionEvent, state: &mut <T as ThreadLocalActor>::State, ) -> Result<(), Box<dyn Error + Send + Sync>>
Handle the incoming supervision event. Unhandled panics will be captured and
sent the the supervisor(s). The default supervision behavior is to exit the
supervisor on any child exit. To override this behavior, implement this function. Read more
Source§fn post_stop(
&self,
myself: ActorRef<Self::Msg>,
state: &mut Self::State,
) -> impl Future<Output = Result<(), Box<dyn Error + Send + Sync>>>
fn post_stop( &self, myself: ActorRef<Self::Msg>, state: &mut Self::State, ) -> impl Future<Output = Result<(), Box<dyn Error + Send + Sync>>>
Invoked after an actor has been stopped to perform final cleanup. In the
event the actor is terminated with
Signal::Kill or has self-panicked,
post_stop won’t be called. Read moreSource§fn spawn(
name: Option<String>,
startup_args: Self::Arguments,
spawner: ThreadLocalActorSpawner,
) -> impl Future<Output = Result<(ActorRef<Self::Msg>, JoinHandle<()>), SpawnErr>>
fn spawn( name: Option<String>, startup_args: Self::Arguments, spawner: ThreadLocalActorSpawner, ) -> impl Future<Output = Result<(ActorRef<Self::Msg>, JoinHandle<()>), SpawnErr>>
Spawn an actor of this type, which is unsupervised, automatically starting Read more
Source§fn spawn_instant(
name: Option<String>,
startup_args: Self::Arguments,
spawner: ThreadLocalActorSpawner,
) -> Result<(ActorRef<Self::Msg>, JoinHandle<Result<JoinHandle<()>, SpawnErr>>), SpawnErr>
fn spawn_instant( name: Option<String>, startup_args: Self::Arguments, spawner: ThreadLocalActorSpawner, ) -> Result<(ActorRef<Self::Msg>, JoinHandle<Result<JoinHandle<()>, SpawnErr>>), SpawnErr>
Spawn an actor instantly, not waiting on the actor’s
pre_start routine. Read moreSource§fn spawn_linked(
name: Option<String>,
startup_args: Self::Arguments,
supervisor: ActorCell,
spawner: ThreadLocalActorSpawner,
) -> impl Future<Output = Result<(ActorRef<Self::Msg>, JoinHandle<()>), SpawnErr>>
fn spawn_linked( name: Option<String>, startup_args: Self::Arguments, supervisor: ActorCell, spawner: ThreadLocalActorSpawner, ) -> impl Future<Output = Result<(ActorRef<Self::Msg>, JoinHandle<()>), SpawnErr>>
Spawn an actor of this type with a supervisor, automatically starting the actor Read more
Source§fn spawn_linked_instant(
name: Option<String>,
startup_args: Self::Arguments,
supervisor: ActorCell,
spawner: ThreadLocalActorSpawner,
) -> Result<(ActorRef<Self::Msg>, JoinHandle<Result<JoinHandle<()>, SpawnErr>>), SpawnErr>
fn spawn_linked_instant( name: Option<String>, startup_args: Self::Arguments, supervisor: ActorCell, spawner: ThreadLocalActorSpawner, ) -> Result<(ActorRef<Self::Msg>, JoinHandle<Result<JoinHandle<()>, SpawnErr>>), SpawnErr>
Spawn an actor instantly with a supervisor, not waiting on the actor’s
pre_start routine.