2 个不稳定版本
0.2.0 | 2021 年 1 月 1 日 |
---|---|
0.1.0 | 2020 年 12 月 31 日 |
#1416 in 异步
32KB
717 行
另一个演员框架
一个简单、本地的演员框架。
示例
use ::std::time::Duration;
use ::tokio::time::sleep;
use ::yaaf::prelude::*;
#[derive(Clone, Debug)]
struct MyMessage;
#[derive(Actor)]
#[handle(MyMessage)]
struct MyActor;
#[async_trait]
impl Handler<MyMessage> for MyActor {
async fn handle(&mut self, _ctx: &mut Context<Self>, _message: MyMessage) {
println!("Received message");
}
}
#[tokio::main]
async fn main() -> Result<(), Box<dyn ::std::error::Error>> {
let mut system = System::new().await?;
let actor = MyActor;
let addr = system.add_actor(actor).await?;
addr.tell(MyMessage);
sleep(Duration::from_millis(100));
system.shutdown().await?;
Ok(())
}
许可证
本软件根据 Apache 许可证版本 2.0 许可。
除非你明确声明,否则你根据 Apache-2.0 许可证定义的贡献,将按上述方式许可,不附加任何额外条款或条件。
依赖关系
~2.3–4MB
~65K SLoC