pub trait Actor:
Send
+ Sync
+ 'static {
type State: Send + 'static;
type Message: Send + 'static;
// Required methods
fn init(&self, ctx: &Context<Self::Message>) -> Self::State;
fn handle(
&self,
state: &mut Self::State,
msg: Self::Message,
ctx: &Context<Self::Message>,
) -> Directive;
// Provided methods
fn idle(&self, ctx: &Context<Self::Message>) -> Directive { ... }
fn post_stop(&self) { ... }
fn config(&self) -> ActorConfig { ... }
}Required Associated Types§
Required Methods§
Sourcefn init(&self, ctx: &Context<Self::Message>) -> Self::State
fn init(&self, ctx: &Context<Self::Message>) -> Self::State
Create initial state. Called on start and restart.
Sourcefn handle(
&self,
state: &mut Self::State,
msg: Self::Message,
ctx: &Context<Self::Message>,
) -> Directive
fn handle( &self, state: &mut Self::State, msg: Self::Message, ctx: &Context<Self::Message>, ) -> Directive
Handle a single message. This is the core of the actor.
Return Directive to control scheduling:
Continue: Process next message immediatelyYield: Give other actors a chance to runPark: Sleep until a message arrivesStop: Terminate this actor
Provided Methods§
Sourcefn idle(&self, ctx: &Context<Self::Message>) -> Directive
fn idle(&self, ctx: &Context<Self::Message>) -> Directive
Called when the mailbox is empty.
Use for:
- Background/periodic work
- Polling external state
- Cleanup tasks
Default: Park (sleep until message arrives)
Sourcefn config(&self) -> ActorConfig
fn config(&self) -> ActorConfig
Actor configuration. Override for custom settings.