Skip to main content

MeshDoc

Struct MeshDoc 

Source
#[non_exhaustive]
pub struct MeshDoc { pub host: String, pub bindings: String, pub endpoints: BTreeMap<String, String>, }
Expand description

A checked mesh document (9.6): the host’s bindings URL and its known endpoint templates. Unknown members are dropped.

Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§host: String

The host it was fetched from (and names).

§bindings: String

The URL of the bindings resource (9.7).

§endpoints: BTreeMap<String, String>

The known endpoints present, by name (cell, receipt, jobs, …): URL templates with their placeholders, such as https://<host>/cell/{cell}.

Implementations§

Source§

impl MeshDoc

Source

pub fn from_json(host: &str, body: &[u8]) -> Result<MeshDoc>

Parses and checks a mesh document fetched from host, on its own (without the key document): strict JSON, an object, host equal to host, proto "datumesh/1", then bindings, endpoints (an object holding every required endpoint) and each known endpoint in ascending name order (9.6): on this host (beginning https://<host>/), with its placeholders each once and no other brace. Unknown members are not checked. Every failure is E_MESH_DOC. Cross-mesh resolution also needs the key document to agree: see resolve_mesh.

Source

pub fn url(&self, name: &str, values: &[(&str, &str)]) -> Option<String>

The URL of endpoint name with its placeholders replaced: values must give each of the template’s placeholders exactly once and nothing else (by name, without braces). Values are inserted as given: percent-encode them first where 5.1 says. None for an endpoint the document does not have, or values that do not match its placeholders.

Trait Implementations§

Source§

impl Clone for MeshDoc

Source§

fn clone(&self) -> Self

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§

impl Debug for MeshDoc

Source§

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

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

impl Eq for MeshDoc

Source§

impl Hash for MeshDoc

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for MeshDoc

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for MeshDoc

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 = !

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

fn try_from(value: U) -> Result<T, !>

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.