eventbuzz
A safe, fast, event publish/subscribe system, where asynchronous events are implemented based on tokio, and inspired
by
Spring events.
1.Usage
Add this to your Cargo.toml:
[]
= "0.1"
# And
# If necessary
= "${version}"
= "${version}"
2.APIs
2.1.Sync
use eventbuzz::sync::prelude::*;
2.1.1.Event
use *;
// ...
// ----------------------------------------------------------------
2.1.2.Listener
;
// ----------------------------------------------------------------
// HelloEvent -> This target event of Listener.
2.1.3.Publish
// 1.Build an instance of Eventbus
// -> Maybe -> Eventbus::new() | unsupported now.
let mut eventbus: Eventbus = builder
/* config or init | Unsupported now */
.build;
// 2.Register
// -> Auto register unsupported now.
eventbus.register_listener;
eventbus.register_listener;
// 3.Publish event.
eventbus.publish_event;
eventbus.publish_event;
2.2.Async
use eventbuzz::asynchronous::prelude::*;
2.2.1.Event
use *;
// ...
// ----------------------------------------------------------------
2.2.2.Listener
use
#[async_trait]
;
// ----------------------------------------------------------------
// Notes: #[async_trait]
// HelloEvent -> This target event of Listener.
2.2.3.Publish
// #[tokio::test(flavor = "multi_thread")]
// 1.Build an instance of Eventbus
// -> Maybe -> Eventbus::new() | unsupported now.
let mut eventbus: AsyncEventbus = builder
/* config or init | Unsupported now */
.build;
// 2.Register
// -> Auto register unsupported now.
eventbus.register_listener.await;
eventbus.register_listener.await;
// 3.Publish event.
eventbus.publish_event.await;
eventbus.publish_event.await;