#[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
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.host: StringThe host it was fetched from (and names).
bindings: StringThe 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
impl MeshDoc
Sourcepub fn from_json(host: &str, body: &[u8]) -> Result<MeshDoc>
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.
Sourcepub fn url(&self, name: &str, values: &[(&str, &str)]) -> Option<String>
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.