use crate::*; use serde_test::{assert_tokens, Token}; use test_helper::serde::DebugPartialEq; macro_rules! t { ($atomic_type:ty, $value_type:ident, $token_type:ident) => { assert_tokens(&DebugPartialEq(<$atomic_type>::new($value_type::MAX)), &[ Token::$token_type($value_type::MAX as _), ]); assert_tokens(&DebugPartialEq(<$atomic_type>::new($value_type::MIN)), &[ Token::$token_type($value_type::MIN as _), ]); }; } #[test] fn test() { assert_tokens(&DebugPartialEq(AtomicBool::new(true)), &[Token::Bool(true)]); assert_tokens(&DebugPartialEq(AtomicBool::new(false)), &[Token::Bool(false)]); t!(AtomicIsize, isize, I64); t!(AtomicUsize, usize, U64); t!(AtomicI8, i8, I8); t!(AtomicU8, u8, U8); t!(AtomicI16, i16, I16); t!(AtomicU16, u16, U16); t!(AtomicI32, i32, I32); t!(AtomicU32, u32, U32); t!(AtomicI64, i64, I64); t!(AtomicU64, u64, U64); // TODO: serde_test doesn't support Token::{I128,U128} // t!(AtomicI128, i128, I128); // t!(AtomicU128, u128, U128); #[cfg(feature = "float")] t!(AtomicF32, f32, F32); #[cfg(feature = "float")] t!(AtomicF64, f64, F64); }