2022-01-23 22:33:47 +08:00
|
|
|
use lib_dispatch::{prelude::*, util::tokio_default_runtime};
|
2021-09-04 15:12:53 +08:00
|
|
|
use std::sync::Arc;
|
2021-06-29 16:52:29 +08:00
|
|
|
|
2022-01-23 12:14:00 +08:00
|
|
|
pub async fn hello() -> String {
|
|
|
|
"say hello".to_string()
|
|
|
|
}
|
2021-06-29 16:52:29 +08:00
|
|
|
|
2021-07-02 20:45:51 +08:00
|
|
|
#[tokio::test]
|
2021-09-04 15:12:53 +08:00
|
|
|
async fn test() {
|
2021-09-17 19:03:46 +08:00
|
|
|
env_logger::init();
|
|
|
|
|
2021-06-29 16:52:29 +08:00
|
|
|
let event = "1";
|
2022-01-23 22:33:47 +08:00
|
|
|
let runtime = tokio_default_runtime().unwrap();
|
|
|
|
let dispatch = Arc::new(EventDispatcher::construct(runtime, || {
|
|
|
|
vec![Module::new().event(event, hello)]
|
|
|
|
}));
|
2021-07-08 13:47:11 +08:00
|
|
|
let request = ModuleRequest::new(event);
|
2021-12-04 11:26:17 +08:00
|
|
|
let _ = EventDispatcher::async_send_with_callback(dispatch.clone(), request, |resp| {
|
2021-07-08 13:47:11 +08:00
|
|
|
Box::pin(async move {
|
|
|
|
dbg!(&resp);
|
|
|
|
})
|
|
|
|
})
|
2021-07-07 22:24:26 +08:00
|
|
|
.await;
|
2021-09-04 15:12:53 +08:00
|
|
|
|
|
|
|
std::mem::forget(dispatch);
|
2021-06-29 16:52:29 +08:00
|
|
|
}
|