pub trait Actor: Send + 'static {
// Provided methods
fn started<'life0, 'async_trait>(
&'life0 mut self,
_addr: Addr<Self>,
) -> Pin<Box<dyn Future<Output = ActorResult<()>> + Send + 'async_trait>>
where Self: Sized + 'async_trait,
'life0: 'async_trait { ... }
fn error<'life0, 'async_trait>(
&'life0 mut self,
error: ActorError,
) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
}
Expand description
Trait implemented by all actors.
This trait is defined using the #[async_trait]
attribute:
ⓘ
#[async_trait]
pub trait Actor: Send + 'static {
/// Called automatically when an actor is started. Actors can use this
/// to store their own address for future use.
async fn started(&mut self, _addr: Addr<Self>) -> ActorResult<()>
where
Self: Sized,
{
Ok(())
}
/// Called when any actor method returns an error. If this method
/// returns `true`, the actor will stop.
/// The default implementation logs the error using the `log` crate
/// and then stops the actor.
async fn error(&mut self, error: ActorError) -> bool {
error!("{}", error);
true
}
}
In order to use a trait object with the actor system, such as with Addr<dyn Trait>
,
the trait must extend this Actor
trait.
Provided Methods§
Sourcefn started<'life0, 'async_trait>(
&'life0 mut self,
_addr: Addr<Self>,
) -> Pin<Box<dyn Future<Output = ActorResult<()>> + Send + 'async_trait>>where
Self: Sized + 'async_trait,
'life0: 'async_trait,
fn started<'life0, 'async_trait>(
&'life0 mut self,
_addr: Addr<Self>,
) -> Pin<Box<dyn Future<Output = ActorResult<()>> + Send + 'async_trait>>where
Self: Sized + 'async_trait,
'life0: 'async_trait,
Called automatically when an actor is started. Actors can use this to store their own address for future use.
Sourcefn error<'life0, 'async_trait>(
&'life0 mut self,
error: ActorError,
) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn error<'life0, 'async_trait>(
&'life0 mut self,
error: ActorError,
) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Called when any actor method returns an error. If this method
returns true
, the actor will stop.
The default implementation logs the error using the log
crate
and then stops the actor.