pub enum UniqueId {
MemoryRef(Arc<dyn Any + Send + Sync>),
Plain(usize),
}
Expand description
Unique identifier potentially backed by an Arc
address to protect against collisions.
Note that a serialization roundtrip will force this to become a UniqueId::Plain
variant.
Variants§
MemoryRef(Arc<dyn Any + Send + Sync>)
ID that derives from the memory address of an Arc
to protect against collisions.
Note that it internally stores as a dyn Any
to allow it to re-use an existing Arc
holding
any type.
Plain(usize)
Stores a plain usize
. Unlike the MemoryRef
variant, there is no internal protection against
collisions - this must handled separately.
Note: This repr may also be constructed as the result of a serialization round-trip.
Implementations§
Trait Implementations§
Source§impl Ord for UniqueId
impl Ord for UniqueId
Source§impl PartialOrd for UniqueId
impl PartialOrd for UniqueId
impl Eq for UniqueId
Auto Trait Implementations§
impl Freeze for UniqueId
impl !RefUnwindSafe for UniqueId
impl Send for UniqueId
impl Sync for UniqueId
impl Unpin for UniqueId
impl !UnwindSafe for UniqueId
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.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 moreSource§impl<T> Key for Twhere
T: Clone,
impl<T> Key for Twhere
T: Clone,
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> ToCompactString for Twhere
T: Display,
impl<T> ToCompactString for Twhere
T: Display,
Source§fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
Fallible version of
ToCompactString::to_compact_string()
Read moreSource§fn to_compact_string(&self) -> CompactString
fn to_compact_string(&self) -> CompactString
Converts the given value to a
CompactString
. Read more