Skip to main content

Link

Struct Link 

Source
pub struct Link {
    pub api: String,
    pub id: String,
    pub secret: String,
}
Expand description

An invite link taken apart into the three things redeeming one needs.

Fields§

§api: String

The node’s API base: scheme and authority, no path, no trailing slash. The same string every other command takes as <api>.

§id: String

The invite’s id, which is the user half of the credential that redeems it.

§secret: String

The invite’s secret, which is the password half.

Implementations§

Source

pub fn looks_like(argument: &str) -> bool

Whether a string is worth handing to Link::parse.

Used by the argument matcher to tell choir join <link> from choir join <api> <invite-file> <key-file>, whose first argument is also a URL. Only the path decides, so a mistyped link still reaches parse and gets parse’s message rather than being silently read as the three-argument form with two arguments missing.

Source

pub fn parse(link: &str) -> Result<Link, String>

Recovers the node and the invite from the link the operator sent.

Hand-written rather than pulled from a URL crate: the grammar is one path and two query parameters, both of which the node mints itself, and this workspace adds dependencies reluctantly.

§Errors

Returns the sentence to print when the string is not an invite link: no scheme, a scheme with no API base behind it, no /join path, or either query parameter missing or empty. Every one of them ends with the next: line a reader can act on.

Trait Implementations§

Source§

fn clone(&self) -> Link

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

fn eq(&self, other: &Link) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.