schemars/json_schema_impls/
atomic.rs1use 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}