Crate event_source
source ·Expand description
EventSource
Zero cost non buffered async event emitter
Example
async fn main() {
let source: Arc<EventSource!(&mut i32)> = Arc::new(EventSource::new());
// imaginary function for spawning future in another thread
spawn({
let source = source.clone();
async {
let mut a = 35;
emit!(source, &mut a);
}
});
let mut output = 0;
// Closure can contain reference!
source.on(|value| {
println!("Event emiited with value: {}!", value);
output = *value;
Some(())
}).await;
println!("Output: {}", output);
}This code outputs Output: 35
License
MIT
Macros
- Higher kinded type helper for [
EventSource] - Emit event. As methods can’t do mutable reborrowing correctly, you should use this macro.
Structs
- Event source