iceoryx2_bb_elementary_traits/
zero_copy_send.rs1pub unsafe trait ZeroCopySend {
33 unsafe fn type_name() -> &'static str {
41 core::any::type_name::<Self>()
42 }
43
44 #[doc(hidden)]
45 fn __is_zero_copy_send(&self) {}
48}
49
50unsafe impl ZeroCopySend for usize {}
51unsafe impl ZeroCopySend for u8 {}
52unsafe impl ZeroCopySend for u16 {}
53unsafe impl ZeroCopySend for u32 {}
54unsafe impl ZeroCopySend for u64 {}
55unsafe impl ZeroCopySend for u128 {}
56
57unsafe impl ZeroCopySend for isize {}
58unsafe impl ZeroCopySend for i8 {}
59unsafe impl ZeroCopySend for i16 {}
60unsafe impl ZeroCopySend for i32 {}
61unsafe impl ZeroCopySend for i64 {}
62unsafe impl ZeroCopySend for i128 {}
63
64unsafe impl ZeroCopySend for f32 {}
65unsafe impl ZeroCopySend for f64 {}
66
67unsafe impl ZeroCopySend for char {}
68unsafe impl ZeroCopySend for bool {}
69
70unsafe impl ZeroCopySend for () {}
71
72unsafe impl ZeroCopySend for core::time::Duration {}
73
74unsafe impl<T: ZeroCopySend> ZeroCopySend for [T] {}
75unsafe impl<T: ZeroCopySend, const N: usize> ZeroCopySend for [T; N] {}
76unsafe impl<T: ZeroCopySend> ZeroCopySend for Option<T> {}
77unsafe impl<T: ZeroCopySend, E: ZeroCopySend> ZeroCopySend for Result<T, E> {}
78unsafe impl<T: ZeroCopySend> ZeroCopySend for core::mem::MaybeUninit<T> {}
79
80unsafe impl<T1: ZeroCopySend, T2: ZeroCopySend> ZeroCopySend for (T1, T2) {}
81unsafe impl<T1: ZeroCopySend, T2: ZeroCopySend, T3: ZeroCopySend> ZeroCopySend for (T1, T2, T3) {}
82unsafe impl<T1: ZeroCopySend, T2: ZeroCopySend, T3: ZeroCopySend, T4: ZeroCopySend> ZeroCopySend
83 for (T1, T2, T3, T4)
84{
85}
86unsafe impl<T1: ZeroCopySend, T2: ZeroCopySend, T3: ZeroCopySend, T4: ZeroCopySend, T5: ZeroCopySend>
87 ZeroCopySend for (T1, T2, T3, T4, T5)
88{
89}
90unsafe impl<
91 T1: ZeroCopySend,
92 T2: ZeroCopySend,
93 T3: ZeroCopySend,
94 T4: ZeroCopySend,
95 T5: ZeroCopySend,
96 T6: ZeroCopySend,
97 > ZeroCopySend for (T1, T2, T3, T4, T5, T6)
98{
99}
100unsafe impl<
101 T1: ZeroCopySend,
102 T2: ZeroCopySend,
103 T3: ZeroCopySend,
104 T4: ZeroCopySend,
105 T5: ZeroCopySend,
106 T6: ZeroCopySend,
107 T7: ZeroCopySend,
108 > ZeroCopySend for (T1, T2, T3, T4, T5, T6, T7)
109{
110}
111unsafe impl<
112 T1: ZeroCopySend,
113 T2: ZeroCopySend,
114 T3: ZeroCopySend,
115 T4: ZeroCopySend,
116 T5: ZeroCopySend,
117 T6: ZeroCopySend,
118 T7: ZeroCopySend,
119 T8: ZeroCopySend,
120 > ZeroCopySend for (T1, T2, T3, T4, T5, T6, T7, T8)
121{
122}