use dptree::prelude::*;
use std::net::Ipv4Addr;
fn assert_num_string_handler(
expected_num: u32,
expected_string: &'static str,
) -> Endpoint<'static, ()> {
dptree::endpoint(move |num: u32, string: String| async move {
assert_eq!(num, expected_num);
assert_eq!(string, expected_string);
})
}
#[tokio::main]
async fn main() {
let store = dptree::deps![10u32, "Hello".to_owned()];
let h = assert_num_string_handler(10u32, "Hello");
let _ = h.dispatch(store.clone()).await;
let handle = tokio::spawn(async move {
let ip_handler: Endpoint<_> = dptree::endpoint(|ip: Ipv4Addr| async move {
assert_eq!(ip, Ipv4Addr::new(0, 0, 0, 0));
});
let _ = ip_handler.dispatch(store).await;
});
let result = handle.await;
assert!(result.is_err())
}