Update atomic_impl macros to have same input syntax in all cfgs

This commit is contained in:
David Tolnay 2022-12-11 16:01:39 -08:00
parent 37faaf295e
commit 0d79306285
No known key found for this signature in database
GPG Key ID: F9BA143B95FF6D82
2 changed files with 46 additions and 32 deletions

View File

@ -2662,7 +2662,7 @@ where
#[cfg(all(feature = "std", no_target_has_atomic, not(no_std_atomic)))]
macro_rules! atomic_impl {
($($ty:ident)*) => {
($($ty:ident $size:expr)*) => {
$(
impl<'de> Deserialize<'de> for $ty {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
@ -2678,7 +2678,7 @@ macro_rules! atomic_impl {
#[cfg(all(feature = "std", not(no_target_has_atomic)))]
macro_rules! atomic_impl {
($($ty:ident $size:expr),*) => {
($($ty:ident $size:expr)*) => {
$(
#[cfg(target_has_atomic = $size)]
impl<'de> Deserialize<'de> for $ty {
@ -2695,28 +2695,35 @@ macro_rules! atomic_impl {
#[cfg(all(feature = "std", no_target_has_atomic, not(no_std_atomic)))]
atomic_impl! {
AtomicBool
AtomicI8 AtomicI16 AtomicI32 AtomicIsize
AtomicU8 AtomicU16 AtomicU32 AtomicUsize
AtomicBool "8"
AtomicI8 "8"
AtomicI16 "16"
AtomicI32 "32"
AtomicIsize "ptr"
AtomicU8 "8"
AtomicU16 "16"
AtomicU32 "32"
AtomicUsize "ptr"
}
#[cfg(all(feature = "std", no_target_has_atomic, not(no_std_atomic64)))]
atomic_impl! {
AtomicI64 AtomicU64
AtomicI64 "64"
AtomicU64 "64"
}
#[cfg(all(feature = "std", not(no_target_has_atomic)))]
atomic_impl! {
AtomicBool "8",
AtomicI8 "8",
AtomicI16 "16",
AtomicI32 "32",
AtomicI64 "64",
AtomicIsize "ptr",
AtomicU8 "8",
AtomicU16 "16",
AtomicU32 "32",
AtomicU64 "64",
AtomicBool "8"
AtomicI8 "8"
AtomicI16 "16"
AtomicI32 "32"
AtomicI64 "64"
AtomicIsize "ptr"
AtomicU8 "8"
AtomicU16 "16"
AtomicU32 "32"
AtomicU64 "64"
AtomicUsize "ptr"
}

View File

@ -947,7 +947,7 @@ where
#[cfg(all(feature = "std", no_target_has_atomic, not(no_std_atomic)))]
macro_rules! atomic_impl {
($($ty:ident)*) => {
($($ty:ident $size:expr)*) => {
$(
impl Serialize for $ty {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
@ -964,7 +964,7 @@ macro_rules! atomic_impl {
#[cfg(all(feature = "std", not(no_target_has_atomic)))]
macro_rules! atomic_impl {
($($ty:ident $size:expr),*) => {
($($ty:ident $size:expr)*) => {
$(
#[cfg(target_has_atomic = $size)]
impl Serialize for $ty {
@ -982,27 +982,34 @@ macro_rules! atomic_impl {
#[cfg(all(feature = "std", no_target_has_atomic, not(no_std_atomic)))]
atomic_impl! {
AtomicBool
AtomicI8 AtomicI16 AtomicI32 AtomicIsize
AtomicU8 AtomicU16 AtomicU32 AtomicUsize
AtomicBool "8"
AtomicI8 "8"
AtomicI16 "16"
AtomicI32 "32"
AtomicIsize "ptr"
AtomicU8 "8"
AtomicU16 "16"
AtomicU32 "32"
AtomicUsize "ptr"
}
#[cfg(all(feature = "std", no_target_has_atomic, not(no_std_atomic64)))]
atomic_impl! {
AtomicI64 AtomicU64
AtomicI64 "64"
AtomicU64 "64"
}
#[cfg(all(feature = "std", not(no_target_has_atomic)))]
atomic_impl! {
AtomicBool "8",
AtomicI8 "8",
AtomicI16 "16",
AtomicI32 "32",
AtomicI64 "64",
AtomicIsize "ptr",
AtomicU8 "8",
AtomicU16 "16",
AtomicU32 "32",
AtomicU64 "64",
AtomicBool "8"
AtomicI8 "8"
AtomicI16 "16"
AtomicI32 "32"
AtomicI64 "64"
AtomicIsize "ptr"
AtomicU8 "8"
AtomicU16 "16"
AtomicU32 "32"
AtomicU64 "64"
AtomicUsize "ptr"
}