pub struct InternCache<T: ?Sized> { /* private fields */ }Expand description
An InternCache is a lazily-constructed weak set of objects.
Let’s break that down! It’s “lazily constructed” because it
doesn’t actually allocate anything until you use it for the first
time. That allows it to have a const new
method, so you can make these static.
It’s “weak” because it only holds weak references to its objects; once every strong reference is gone, the object is unallocated. Later, the hash entry is (lazily) removed.
Implementations§
Source§impl<T: ?Sized> InternCache<T>
impl<T: ?Sized> InternCache<T>
Source§impl<T: Eq + Hash> InternCache<T>
impl<T: Eq + Hash> InternCache<T>
Trait Implementations§
Auto Trait Implementations§
impl<T> !Freeze for InternCache<T>
impl<T> RefUnwindSafe for InternCache<T>where
T: ?Sized,
impl<T> Send for InternCache<T>
impl<T> Sync for InternCache<T>
impl<T> Unpin for InternCache<T>where
T: ?Sized,
impl<T> UnwindSafe for InternCache<T>where
T: ?Sized,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more