use std::thread; use tokio::try_join; use cs_trace::{create_trace, child}; use cs_utils::futures::wait; #[test] fn can_be_send_and_sync() { let trace = create_trace!("add-duplex2"); thread::spawn(move || { trace.info("hello world!"); }); } #[tokio::test] async fn child_can_be_send_and_sync() { let trace_parent = create_trace!("trace1"); let trace_child = child!(trace_parent, "child"); let (trace_child2,) = try_join!( tokio::spawn(async move { trace_child.info("trace info"); wait(100).await; trace_child.warn("trace warn"); trace_child }), ).unwrap(); trace_child2.trace("trace trace"); } #[test] fn test_for_send() { let trace = create_trace!("trace1"); let child_trace = child!(trace, "child"); let _ok_trace: Box = Box::new(trace); let _ok_child_trace: Box = Box::new(child_trace); } #[test] fn test_for_sync() { let trace = create_trace!("trace1"); let child_trace = child!(trace, "child"); let _ok_trace: Box = Box::new(trace); let _ok_child_trace: Box = Box::new(child_trace); } #[test] fn test_for_unpin() { let trace = create_trace!("trace1"); let child_trace = child!(trace, "child"); let _ok_trace: Box = Box::new(trace); let _ok_child_trace: Box = Box::new(child_trace); }