Skip to main content

atomic_primitive/
signed.rs

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