use std::sync::Arc; use lib_dispatch::prelude::*; use lib_dispatch::runtime::AFPluginRuntime; pub async fn hello() -> String { "say hello".to_string() } #[tokio::test] async fn test() { let event = "1"; let runtime = Arc::new(AFPluginRuntime::new().unwrap()); let dispatch = Arc::new(AFPluginDispatcher::construct(runtime, || { vec![AFPlugin::new().event(event, hello)] })); let request = AFPluginRequest::new(event); let _ = AFPluginDispatcher::async_send_with_callback(dispatch.clone(), request, |resp| { Box::pin(async move { dbg!(&resp); }) }) .await; std::mem::forget(dispatch); }