An implementation of the Mediator pattern in Rust inspired in C# MediatR.
https://en.wikipedia.org/wiki/Mediator_pattern
toml
[dependencies]
mediator = "0.1"
```rust use mediator::{DefaultMediator, Mediator, Request, Event, RequestHandler, EventHandler};
enum Op { Add(f32, f32), Sub(f32, f32), Mul(f32, f32), Div(f32, f32), }
struct MathRequest(Op); impl Request
struct MathEvent(Op, Option
struct MathRequestHandler(DefaultMediator);
impl RequestHandler
self.0.publish(MathEvent(req.0, result));
result
}
}
fn main() { let mut mediator = DefaultMediator::builder() .addhandlerdeferred(|m| MathRequestHandler(m)) .subscribe_fn(|event: MathEvent| { println!("{:?}", event); }) .build(); } ```
License: MIT