cs_utils/test/implements_send.rs
1
2/// Test if an item implements `Send` trait.
3///
4/// ### Examples
5///
6/// - Send item:
7///
8/// ```
9/// // either "test" or "all" features must be enabled
10/// #[cfg(any(feature = "test", feature = "all"))]
11/// {
12/// use cs_utils::test::implements_send;
13///
14/// // Send is auto implemented
15/// struct TestStruct {}
16///
17/// // compiles fine
18/// implements_send(TestStruct {});
19/// }
20/// ```
21///
22/// - Non-Send item:
23///
24/// ```compile_fail
25/// // either "test" or "all" features must be enabled
26/// #[cfg(any(feature = "test", feature = "all"))]
27/// {
28/// use cs_utils::test::implements_send;
29///
30/// struct TestStruct {
31/// // make it not Send
32/// rc: std::rc::Rc<u8>,
33/// }
34///
35/// // does not compile
36/// implements_send(TestStruct {});
37/// }
38/// ```
39pub fn implements_send<T: Send>(item: T) -> T {
40 return item;
41}