#[non_exhaustive]pub struct ProcedureDecl {Show 14 fields
pub path: String,
pub kind: Option<Declared<ProcedureKind>>,
pub reply: Option<String>,
pub request: Option<String>,
pub encoding: Option<WireEncoding>,
pub fanout: Option<Declared<Fanout>>,
pub idempotent: Option<bool>,
pub cardinality: Option<i64>,
pub when: Option<Vec<Predicate>>,
pub gate_note: Option<String>,
pub exposure: Option<Declared<Exposure>>,
pub sensitive: Option<bool>,
pub since: Option<String>,
pub description: Option<String>,
}Expand description
One [[procedure]] entry of a served registry slice.
#[non_exhaustive]: every version of this type so far has been the
previous one plus a field (encoding v1.5, blob v1.8, media
v1.16), and each of those was a breaking change for anyone
constructing one. It is a parse result, not a thing callers build
— parse_slice is the constructor — so the attribute costs the
intended use nothing and stops the next field being a break (#325).
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.path: StringThe procedure path, base-relative to the producer’s @rpc root.
kind: Option<Declared<ProcedureKind>>read | write (RFC 05 §2).
reply: Option<String>§request: Option<String>The declared request type name, when declared.
encoding: Option<WireEncoding>The declared payload encoding (RFC 08 §2, v1.5).
fanout: Option<Declared<Fanout>>"forbidden" forbids *-origin fan-out calls (RFC 05 §2.1); absent
means unconstrained. Surfaced in the slice since 0.5 so dynamic
callers (explorers) can refuse what generated builders make
unspellable — the registry layer of the three-layer refusal.
idempotent: Option<bool>Whether the procedure declares itself idempotent (RFC 08 §2).
cardinality: Option<i64>The declared key-population bound of a {var}-bearing path, when
declared (RFC 08 §2 — required there, optional here: this type reads
foreign slices, and the strict check belongs to that build’s own
zenkey-build).
when: Option<Vec<Predicate>>The conditions under which this procedure can do its work, ANDed
(RFC 08 §2, v1.35). It is declared regardless, and answers
error/unsupported or error/gated — PredicateKind::gated_error
— while a predicate is false (§6.1).
gate_note: Option<String>One line for the human, present only with when.
exposure: Option<Declared<Exposure>>How far the procedure may travel (RFC 08 §2, v1.43), when declared;
absent means Exposure::Fleet.
sensitive: Option<bool>The request carries a secret (RFC 08 §2, v1.43): a generated ACL denies the procedure to every principal until a grant names it.
since: Option<String>§description: Option<String>Implementations§
Trait Implementations§
Source§impl Clone for ProcedureDecl
impl Clone for ProcedureDecl
Source§impl Debug for ProcedureDecl
impl Debug for ProcedureDecl
impl Eq for ProcedureDecl
Source§impl PartialEq for ProcedureDecl
impl PartialEq for ProcedureDecl
impl StructuralPartialEq for ProcedureDecl
Auto Trait Implementations§
impl Freeze for ProcedureDecl
impl RefUnwindSafe for ProcedureDecl
impl Send for ProcedureDecl
impl Sync for ProcedureDecl
impl Unpin for ProcedureDecl
impl UnsafeUnpin for ProcedureDecl
impl UnwindSafe for ProcedureDecl
Blanket Implementations§
Source§impl<Source> AccessAs for Source
impl<Source> AccessAs for Source
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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