schemars/json_schema_impls/
atomic.rs

1use crate::gen::SchemaGenerator;
2use crate::schema::*;
3use crate::JsonSchema;
4use std::sync::atomic::*;
5
6forward_impl!(AtomicBool => bool);
7
8forward_impl!(AtomicI8 => i8);
9forward_impl!(AtomicI16 => i16);
10forward_impl!(AtomicI32 => i32);
11#[cfg(std_atomic64)]
12forward_impl!(AtomicI64 => i64);
13forward_impl!(AtomicIsize => isize);
14
15forward_impl!(AtomicU8 => u8);
16forward_impl!(AtomicU16 => u16);
17forward_impl!(AtomicU32 => u32);
18#[cfg(std_atomic64)]
19forward_impl!(AtomicU64 => u64);
20forward_impl!(AtomicUsize => usize);
21
22#[cfg(test)]
23mod tests {
24    use super::*;
25    use crate::tests::schema_object_for;
26    use pretty_assertions::assert_eq;
27
28    #[test]
29    fn schema_for_atomics() {
30        let atomic_schema = schema_object_for::<(
31            AtomicBool,
32            AtomicI8,
33            AtomicI16,
34            AtomicI32,
35            AtomicI64,
36            AtomicIsize,
37            AtomicU8,
38            AtomicU16,
39            AtomicU32,
40            AtomicU64,
41            AtomicUsize,
42        )>();
43        let basic_schema =
44            schema_object_for::<(bool, i8, i16, i32, i64, isize, u8, u16, u32, u64, usize)>();
45        assert_eq!(atomic_schema, basic_schema);
46    }
47}