pub struct ConversationId(pub [u8; 16]);Expand description
16-byte conversation identifier (ULID encoded). Stable across epochs.
Tuple Fields§
§0: [u8; 16]Implementations§
Source§impl ConversationId
impl ConversationId
pub fn new() -> Self
Sourcepub fn new_call_group() -> Self
pub fn new_call_group() -> Self
Mint a per-call-group id: a random ULID with the 0xFF 0xCC sentinel
prefix, so ANY device recognises it as an ephemeral call group by its id
alone — no name (the call: name is creator-local and never travels in a
Welcome) and no per-device registry needed. This is the exact parallel of
the DeviceGroup sentinel 0xFF 0xDC (see device_group_id_for). A normal
ULID begins with the high byte of a 48-bit millisecond timestamp (0x01
in this era), so it can never collide with the 0xFF sentinel space.
Sourcepub fn is_call_group(&self) -> bool
pub fn is_call_group(&self) -> bool
True when this id carries the call-group sentinel prefix (0xFF 0xCC).
Structural — recognisable on every device without a name or registry.
pub fn as_hex(&self) -> String
Trait Implementations§
Source§impl Clone for ConversationId
impl Clone for ConversationId
Source§fn clone(&self) -> ConversationId
fn clone(&self) -> ConversationId
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for ConversationId
Source§impl Debug for ConversationId
impl Debug for ConversationId
Source§impl Default for ConversationId
impl Default for ConversationId
Source§impl<'de> Deserialize<'de> for ConversationId
impl<'de> Deserialize<'de> for ConversationId
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for ConversationId
Source§impl Hash for ConversationId
impl Hash for ConversationId
Source§impl Ord for ConversationId
impl Ord for ConversationId
Source§fn cmp(&self, other: &ConversationId) -> Ordering
fn cmp(&self, other: &ConversationId) -> Ordering
1.21.0 (const: unstable) · Source§fn 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
Source§impl PartialEq for ConversationId
impl PartialEq for ConversationId
Source§impl PartialOrd for ConversationId
impl PartialOrd for ConversationId
Source§impl Serialize for ConversationId
impl Serialize for ConversationId
impl StructuralPartialEq for ConversationId
Auto Trait Implementations§
impl Freeze for ConversationId
impl RefUnwindSafe for ConversationId
impl Send for ConversationId
impl Sync for ConversationId
impl Unpin for ConversationId
impl UnsafeUnpin for ConversationId
impl UnwindSafe for ConversationId
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<T> Declassify for T
impl<T> Declassify for T
type Declassified = T
fn declassify(self) -> T
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
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