4 个版本
0.1.2 | 2023年7月29日 |
---|---|
0.1.1 | 2023年5月10日 |
0.1.0 | 2023年5月9日 |
0.0.0 | 2023年5月9日 |
#4 在 #dedicated
每月 33 次下载
14KB
223 代码行
Affair
Affair 是一个简单的基于 Tokio 的库,用于启动一个工人并与它通信,工人可以启动在专用线程或作为 Tokio 任务。
示例
use affair::*;
#[derive(Default)]
struct CounterWorker {
current: u64,
}
impl Worker for CounterWorker {
type Request = u64;
type Response = u64;
fn handle(&mut self, req: Self::Request) -> Self::Response {
self.current += req;
self.current
}
}
#[tokio::main(flavor = "current_thread")]
async fn main() {
let port = DedicatedThread::spawn(CounterWorker::default());
assert_eq!(port.run(10).await.unwrap(), 10);
assert_eq!(port.run(3).await.unwrap(), 13);
}
lib.rs
:
Affair 是一个简单的基于 Tokio 的库,用于启动一个工人并与它通信,工人可以启动在专用线程或作为 Tokio 任务。
use affair::*;
#[derive(Default)]
struct CounterWorker {
current: u64,
}
impl Worker for CounterWorker {
type Request = u64;
type Response = u64;
fn handle(&mut self, req: Self::Request) -> Self::Response {
self.current += req;
self.current
}
}
#[tokio::main(flavor = "current_thread")]
async fn main() {
let socket = DedicatedThread::spawn(CounterWorker::default());
assert_eq!(socket.run(10).await.unwrap(), 10);
assert_eq!(socket.run(3).await.unwrap(), 13);
}
依赖项
~3–4.5MB
~79K SLoC