use crate::{de::Decodable, enc::Encodeable}; use core::sync::atomic::{ AtomicBool, AtomicI16, AtomicI32, AtomicI64, AtomicI8, AtomicIsize, AtomicU16, AtomicU32, AtomicU64, AtomicU8, AtomicUsize, Ordering, }; impl Encodeable for AtomicBool { fn encode(&self, encoder: E) -> Result<(), crate::error::EncodeError> { self.load(Ordering::SeqCst).encode(encoder) } } impl Decodable for AtomicBool { fn decode(decoder: D) -> Result { Ok(AtomicBool::new(Decodable::decode(decoder)?)) } } impl Encodeable for AtomicU8 { fn encode(&self, encoder: E) -> Result<(), crate::error::EncodeError> { self.load(Ordering::SeqCst).encode(encoder) } } impl Decodable for AtomicU8 { fn decode(decoder: D) -> Result { Ok(AtomicU8::new(Decodable::decode(decoder)?)) } } impl Encodeable for AtomicU16 { fn encode(&self, encoder: E) -> Result<(), crate::error::EncodeError> { self.load(Ordering::SeqCst).encode(encoder) } } impl Decodable for AtomicU16 { fn decode(decoder: D) -> Result { Ok(AtomicU16::new(Decodable::decode(decoder)?)) } } impl Encodeable for AtomicU32 { fn encode(&self, encoder: E) -> Result<(), crate::error::EncodeError> { self.load(Ordering::SeqCst).encode(encoder) } } impl Decodable for AtomicU32 { fn decode(decoder: D) -> Result { Ok(AtomicU32::new(Decodable::decode(decoder)?)) } } impl Encodeable for AtomicU64 { fn encode(&self, encoder: E) -> Result<(), crate::error::EncodeError> { self.load(Ordering::SeqCst).encode(encoder) } } impl Decodable for AtomicU64 { fn decode(decoder: D) -> Result { Ok(AtomicU64::new(Decodable::decode(decoder)?)) } } impl Encodeable for AtomicUsize { fn encode(&self, encoder: E) -> Result<(), crate::error::EncodeError> { self.load(Ordering::SeqCst).encode(encoder) } } impl Decodable for AtomicUsize { fn decode(decoder: D) -> Result { Ok(AtomicUsize::new(Decodable::decode(decoder)?)) } } impl Encodeable for AtomicI8 { fn encode(&self, encoder: E) -> Result<(), crate::error::EncodeError> { self.load(Ordering::SeqCst).encode(encoder) } } impl Decodable for AtomicI8 { fn decode(decoder: D) -> Result { Ok(AtomicI8::new(Decodable::decode(decoder)?)) } } impl Encodeable for AtomicI16 { fn encode(&self, encoder: E) -> Result<(), crate::error::EncodeError> { self.load(Ordering::SeqCst).encode(encoder) } } impl Decodable for AtomicI16 { fn decode(decoder: D) -> Result { Ok(AtomicI16::new(Decodable::decode(decoder)?)) } } impl Encodeable for AtomicI32 { fn encode(&self, encoder: E) -> Result<(), crate::error::EncodeError> { self.load(Ordering::SeqCst).encode(encoder) } } impl Decodable for AtomicI32 { fn decode(decoder: D) -> Result { Ok(AtomicI32::new(Decodable::decode(decoder)?)) } } impl Encodeable for AtomicI64 { fn encode(&self, encoder: E) -> Result<(), crate::error::EncodeError> { self.load(Ordering::SeqCst).encode(encoder) } } impl Decodable for AtomicI64 { fn decode(decoder: D) -> Result { Ok(AtomicI64::new(Decodable::decode(decoder)?)) } } impl Encodeable for AtomicIsize { fn encode(&self, encoder: E) -> Result<(), crate::error::EncodeError> { self.load(Ordering::SeqCst).encode(encoder) } } impl Decodable for AtomicIsize { fn decode(decoder: D) -> Result { Ok(AtomicIsize::new(Decodable::decode(decoder)?)) } }