From bee929969324294ac2b9dddf89b1bcebf49bc360 Mon Sep 17 00:00:00 2001 From: David Tolnay Date: Tue, 16 Jul 2019 07:42:22 -0700 Subject: [PATCH] One macro to serialize all atomics --- serde/src/ser/impls.rs | 55 ++++++++++++------------------------------ 1 file changed, 15 insertions(+), 40 deletions(-) diff --git a/serde/src/ser/impls.rs b/serde/src/ser/impls.rs index 32798e96..c2a08efd 100644 --- a/serde/src/ser/impls.rs +++ b/serde/src/ser/impls.rs @@ -844,48 +844,23 @@ where #[cfg(all(feature = "std", std_integer_atomics))] macro_rules! atomic_impl { - ($ty:ident) => { - impl Serialize for $ty { - #[inline] - fn serialize(&self, serializer: S) -> Result - where - S: Serializer, - { - self.load(Ordering::SeqCst).serialize(serializer) + ($($ty:ident)*) => { + $( + impl Serialize for $ty { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + self.load(Ordering::SeqCst).serialize(serializer) + } } - } + )* } } #[cfg(all(feature = "std", std_integer_atomics))] -atomic_impl!(AtomicBool); - -#[cfg(all(feature = "std", std_integer_atomics))] -atomic_impl!(AtomicI8); - -#[cfg(all(feature = "std", std_integer_atomics))] -atomic_impl!(AtomicI16); - -#[cfg(all(feature = "std", std_integer_atomics))] -atomic_impl!(AtomicI32); - -#[cfg(all(feature = "std", std_integer_atomics))] -atomic_impl!(AtomicI64); - -#[cfg(all(feature = "std", std_integer_atomics))] -atomic_impl!(AtomicIsize); - -#[cfg(all(feature = "std", std_integer_atomics))] -atomic_impl!(AtomicU8); - -#[cfg(all(feature = "std", std_integer_atomics))] -atomic_impl!(AtomicU16); - -#[cfg(all(feature = "std", std_integer_atomics))] -atomic_impl!(AtomicU32); - -#[cfg(all(feature = "std", std_integer_atomics))] -atomic_impl!(AtomicU64); - -#[cfg(all(feature = "std", std_integer_atomics))] -atomic_impl!(AtomicUsize); +atomic_impl! { + AtomicBool + AtomicI8 AtomicI16 AtomicI32 AtomicI64 AtomicIsize + AtomicU8 AtomicU16 AtomicU32 AtomicU64 AtomicUsize +}