pub struct InviteLink {
pub v: u32,
pub host_multiaddr: String,
pub fingerprint: String,
pub room: Option<InviteRoom>,
pub creator_pubkey_b64: Option<String>,
pub signed_at_ms: i64,
pub signature_b64: Option<String>,
pub relay_url: Option<String>,
}Fields§
§v: u321 = legacy unsigned (huddle 0.7.10 and earlier). 2 = signed (huddle 0.7.11+).
host_multiaddr: String§fingerprint: String§room: Option<InviteRoom>§creator_pubkey_b64: Option<String>huddle 0.7.11: creator’s raw Ed25519 pubkey, base64. Required
for v >= 2. The verifier re-derives the fingerprint from this
and rejects the invite if it doesn’t match fingerprint.
signed_at_ms: i64huddle 0.7.11: epoch-ms at signing time.
signature_b64: Option<String>huddle 0.7.11: Ed25519 signature over signable_bytes. Required
for v >= 2.
relay_url: Option<String>huddle 1.0: optional clearnet relay URL the inviter is reachable on
(wss://host/ws or ws://ip:port/ws — e.g. a cloudflared tunnel).
When present, the joiner can connect to the inviter’s relay with zero
config. Bumps the invite to v=3 and is covered by the signature, so
it can’t be swapped for an attacker’s relay without breaking the sig.
None for relay-less invites (which stay v=2, readable by older
clients).
Trait Implementations§
Source§impl Clone for InviteLink
impl Clone for InviteLink
Source§fn clone(&self) -> InviteLink
fn clone(&self) -> InviteLink
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for InviteLink
impl Debug for InviteLink
Source§impl<'de> Deserialize<'de> for InviteLink
impl<'de> Deserialize<'de> for InviteLink
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>,
impl Eq for InviteLink
Source§impl PartialEq for InviteLink
impl PartialEq for InviteLink
Source§fn eq(&self, other: &InviteLink) -> bool
fn eq(&self, other: &InviteLink) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for InviteLink
impl Serialize for InviteLink
impl StructuralPartialEq for InviteLink
Auto Trait Implementations§
impl Freeze for InviteLink
impl RefUnwindSafe for InviteLink
impl Send for InviteLink
impl Sync for InviteLink
impl Unpin for InviteLink
impl UnsafeUnpin for InviteLink
impl UnwindSafe for InviteLink
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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>
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>
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