[−][src]Trait xactor::Service
Trait define a global service.
The service is a global actor.
You can use Actor::from_registry
to get the address Addr<A>
of the service.
Examples
use xactor::*; #[message(result = "i32")] struct AddMsg(i32); #[derive(Default)] struct MyService(i32); impl Actor for MyService {} impl Service for MyService {} #[async_trait::async_trait] impl Handler<AddMsg> for MyService { async fn handle(&mut self, ctx: &mut Context<Self>, msg: AddMsg) -> i32 { self.0 += msg.0; self.0 } } #[xactor::main] async fn main() -> Result<()> { let mut addr = MyService::from_registry().await?; assert_eq!(addr.call(AddMsg(1)).await?, 1); assert_eq!(addr.call(AddMsg(5)).await?, 6); Ok(()) }
Provided methods
#[must_use]fn from_registry<'async_trait>(
) -> Pin<Box<dyn Future<Output = Result<Addr<Self>>> + Send + 'async_trait>> where
Self: Send + 'async_trait,
) -> Pin<Box<dyn Future<Output = Result<Addr<Self>>> + Send + 'async_trait>> where
Self: Send + 'async_trait,