2 个不稳定版本
0.1.0 | 2023年4月26日 |
---|---|
0.0.1 | 2022年3月7日 |
#5 在 #heavily
8KB
116 行
Brazier
中介模式的实现。
Brazier 深受 .NET MediatR 包 的启发。它允许你解耦消息的发送和处理。
示例
use brazier::*;
pub struct Ping {}
impl Request<String> for Ping {}
#[derive(Debug)]
pub struct PingHandler;
#[async_trait::async_trait]
impl RequestHandler<Ping, String> for PingHandler {
async fn handle(&mut self, _request: Ping) -> Result<String> {
Ok(String::from("pong!"))
}
}
#[tokio::main]
async fn main() -> Result<()> {
let mut mediator = Mediator::new();
mediator.register_handler(PingHandler);
let result = mediator.send(Ping {}).await?;
println!("{}", result);
Ok(())
}
依赖项
~280–740KB
~18K SLoC