pub struct Uniq<T: ?Sized>(_);
Expand description
A unique pointer to data, allocated by a backing store.
By “unique” I mean that if t1 == t2
(as determined by the backing store), then
Uniq::new(t1)
is pointer-equal to Uniq::new(t2)
.
This property reduces memory use, reduces allocator hits, and allows for short-circuiting many operations, including Ord
(pointer ordering), Eq
(pointer equality), and Hash
(pointer hash).
Implementations
Trait Implementations
sourceimpl<T> Ord for Uniq<T>
impl<T> Ord for Uniq<T>
1.21.0 · sourcefn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
1.21.0 · sourcefn min(self, other: Self) -> Selfwhere
Self: Sized,
fn min(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the minimum of two values. Read more
1.50.0 · sourcefn clamp(self, min: Self, max: Self) -> Selfwhere
Self: Sized + PartialOrd<Self>,
fn clamp(self, min: Self, max: Self) -> Selfwhere
Self: Sized + PartialOrd<Self>,
Restrict a value to a certain interval. Read more
sourceimpl<T> PartialOrd<Uniq<T>> for Uniq<T>
impl<T> PartialOrd<Uniq<T>> for Uniq<T>
sourcefn partial_cmp(&self, other: &Self) -> Option<Ordering>
fn partial_cmp(&self, other: &Self) -> Option<Ordering>
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self
and other
) and is used by the <=
operator. Read moreimpl<T> Copy for Uniq<T>
impl<T> Eq for Uniq<T>
impl<T> Send for Uniq<T>
impl<T> Sync for Uniq<T>
Auto Trait Implementations
impl<T: ?Sized> RefUnwindSafe for Uniq<T>where
T: RefUnwindSafe,
impl<T: ?Sized> Unpin for Uniq<T>
impl<T: ?Sized> UnwindSafe for Uniq<T>where
T: RefUnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more