Skip to main content

atomic_primitive/
unsigned.rs

1use crate::PrimitiveAtomicInteger;
2
3/// Marker trait for primitive atomic [unsigned integer types].
4///
5/// Implemented by [`AtomicU8`], [`AtomicU16`], [`AtomicU32`], [`AtomicU64`],
6/// and [`AtomicUsize`].
7///
8/// This trait is sealed to prevent downstream implementations.
9///
10/// [`AtomicU8`]: core::sync::atomic::AtomicU8
11/// [`AtomicU16`]: core::sync::atomic::AtomicU16
12/// [`AtomicU32`]: core::sync::atomic::AtomicU32
13/// [`AtomicU64`]: core::sync::atomic::AtomicU64
14/// [`AtomicUsize`]: core::sync::atomic::AtomicUsize
15/// [unsigned integer types]: core::sync::atomic
16pub trait PrimitiveAtomicUnsigned: PrimitiveAtomicInteger {}
17
18use core::sync::atomic::{AtomicU8, AtomicU16, AtomicU32, AtomicU64, AtomicUsize};
19
20impl PrimitiveAtomicUnsigned for AtomicU8 {}
21impl PrimitiveAtomicUnsigned for AtomicU16 {}
22impl PrimitiveAtomicUnsigned for AtomicU32 {}
23impl PrimitiveAtomicUnsigned for AtomicU64 {}
24impl PrimitiveAtomicUnsigned for AtomicUsize {}