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