Lines Matching refs:T

52 pub struct Atomic<T: AtomicType>(AtomicRepr<T::Repr>);
55 unsafe impl<T: AtomicType> Sync for Atomic<T> {}
130 const fn into_repr<T: AtomicType>(v: T) -> T::Repr { in into_repr()
140 const unsafe fn from_repr<T: AtomicType>(r: T::Repr) -> T { in from_repr() argument
145 impl<T: AtomicType> Atomic<T> {
147 pub const fn new(v: T) -> Self { in new()
207 pub unsafe fn from_ptr<'a>(ptr: *mut T) -> &'a Self in from_ptr()
209 T: Sync, in from_ptr()
228 pub const fn as_ptr(&self) -> *mut T { in as_ptr() argument
238 pub fn get_mut(&mut self) -> &mut T { in get_mut() argument
248 impl<T: AtomicType> Atomic<T>
250 T::Repr: AtomicBasicOps,
269 pub fn load<Ordering: ordering::AcquireOrRelaxed>(&self, _: Ordering) -> T { in load() argument
272 OrderingType::Relaxed => T::Repr::atomic_read(&self.0), in load()
273 OrderingType::Acquire => T::Repr::atomic_read_acquire(&self.0), in load()
299 pub fn store<Ordering: ordering::ReleaseOrRelaxed>(&self, v: T, _: Ordering) { in store() argument
304 OrderingType::Relaxed => T::Repr::atomic_set(&self.0, v), in store()
305 OrderingType::Release => T::Repr::atomic_set_release(&self.0, v), in store()
311 impl<T: AtomicType + core::fmt::Debug> core::fmt::Debug for Atomic<T>
313 T::Repr: AtomicBasicOps,
320 impl<T: AtomicType> Atomic<T>
322 T::Repr: AtomicExchangeOps,
340 pub fn xchg<Ordering: ordering::Ordering>(&self, v: T, _: Ordering) -> T { in xchg() argument
347 OrderingType::Full => T::Repr::atomic_xchg(&self.0, v), in xchg()
348 OrderingType::Acquire => T::Repr::atomic_xchg_acquire(&self.0, v), in xchg()
349 OrderingType::Release => T::Repr::atomic_xchg_release(&self.0, v), in xchg()
350 OrderingType::Relaxed => T::Repr::atomic_xchg_relaxed(&self.0, v), in xchg()
413 mut old: T, in cmpxchg() argument
414 new: T, in cmpxchg() argument
416 ) -> Result<T, T> { in cmpxchg() argument
458 fn try_cmpxchg<Ordering: ordering::Ordering>(&self, old: &mut T, new: T, _: Ordering) -> bool { in try_cmpxchg() argument
466 OrderingType::Full => T::Repr::atomic_try_cmpxchg(&self.0, &mut tmp, new), in try_cmpxchg()
468 T::Repr::atomic_try_cmpxchg_acquire(&self.0, &mut tmp, new) in try_cmpxchg()
471 T::Repr::atomic_try_cmpxchg_release(&self.0, &mut tmp, new) in try_cmpxchg()
474 T::Repr::atomic_try_cmpxchg_relaxed(&self.0, &mut tmp, new) in try_cmpxchg()
486 impl<T: AtomicType> Atomic<T>
488 T::Repr: AtomicArithmeticOps,
510 T: AtomicAdd<Rhs>, in add()
512 let v = T::rhs_into_delta(v); in add()
516 T::Repr::atomic_add(&self.0, v); in add()
542 pub fn fetch_add<Rhs, Ordering: ordering::Ordering>(&self, v: Rhs, _: Ordering) -> T in fetch_add()
544 T: AtomicAdd<Rhs>, in fetch_add()
546 let v = T::rhs_into_delta(v); in fetch_add()
552 OrderingType::Full => T::Repr::atomic_fetch_add(&self.0, v), in fetch_add()
553 OrderingType::Acquire => T::Repr::atomic_fetch_add_acquire(&self.0, v), in fetch_add()
554 OrderingType::Release => T::Repr::atomic_fetch_add_release(&self.0, v), in fetch_add()
555 OrderingType::Relaxed => T::Repr::atomic_fetch_add_relaxed(&self.0, v), in fetch_add()