schemars/json_schema_impls/
atomic.rs

1use core::sync::atomic::*;
2
3#[cfg(target_has_atomic = "8")]
4forward_impl!(AtomicBool => bool);
5
6#[cfg(target_has_atomic = "8")]
7forward_impl!(AtomicI8 => i8);
8
9#[cfg(target_has_atomic = "16")]
10forward_impl!(AtomicI16 => i16);
11
12#[cfg(target_has_atomic = "32")]
13forward_impl!(AtomicI32 => i32);
14
15#[cfg(target_has_atomic = "64")]
16forward_impl!(AtomicI64 => i64);
17
18#[cfg(target_has_atomic = "ptr")]
19forward_impl!(AtomicIsize => isize);
20
21#[cfg(target_has_atomic = "8")]
22forward_impl!(AtomicU8 => u8);
23
24#[cfg(target_has_atomic = "16")]
25forward_impl!(AtomicU16 => u16);
26
27#[cfg(target_has_atomic = "32")]
28forward_impl!(AtomicU32 => u32);
29
30#[cfg(target_has_atomic = "64")]
31forward_impl!(AtomicU64 => u64);
32
33#[cfg(target_has_atomic = "ptr")]
34forward_impl!(AtomicUsize => usize);
35
36#[cfg(test)]
37mod tests {
38    use super::*;
39    use crate::schema_for;
40    use pretty_assertions::assert_eq;
41
42    #[test]
43    fn schema_for_atomics() {
44        let atomic_schema = schema_for!((
45            AtomicBool,
46            AtomicI8,
47            AtomicI16,
48            AtomicI32,
49            AtomicI64,
50            AtomicIsize,
51            AtomicU8,
52            AtomicU16,
53            AtomicU32,
54            AtomicU64,
55            AtomicUsize,
56        ));
57        let basic_schema = schema_for!((bool, i8, i16, i32, i64, isize, u8, u16, u32, u64, usize));
58        assert_eq!(atomic_schema, basic_schema);
59    }
60}