#[non_exhaustive]pub struct SubjectDecl {Show 13 fields
pub path: String,
pub class: Declared<Class>,
pub type_name: String,
pub kind: Option<Declared<SubjectKind>>,
pub common: Option<Declared<CommonFamily>>,
pub since: Option<String>,
pub description: Option<String>,
pub qos: Option<Declared<QosProfile>>,
pub ttl_s: Option<i64>,
pub unit: Option<String>,
pub rate: Option<RateClass>,
pub cardinality: Option<i64>,
pub encoding: Option<WireEncoding>,
}Expand description
One [[subject]] 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 subject pattern, base-relative to <class>/<producer> — e.g.
disk/{mount}/used.
class: Declared<Class>telemetry | state | events (RFC 04 §1).
type_name: StringThe payload type name, as the producer declares it.
kind: Option<Declared<SubjectKind>>What the leaf value is — counter | gauge | text | bool (RFC 08 §2,
v1.32), when declared. Absent means unchecked: a judge answers not
asked (RFC 13 §3).
common: Option<Declared<CommonFamily>>common = "health|errors|sensor|…" — which of the RFC 08 §5 framework
state roles this subject declares itself as, when it declares one.
Carried since #50: a producer serves its registry TOML verbatim, so
this field has always ridden the wire; the slice type simply dropped it
on the floor. That was invisible until registry export --as toml made
the parse→emit path a round trip somebody might feed back into a build,
where a lost common silently changes the generated
AnySubject::common_state().
since: Option<String>Registry version this subject first appeared in.
description: Option<String>§qos: Option<Declared<QosProfile>>The declared QoS profile (RFC 04 §3), when the slice carries one.
ttl_s: Option<i64>State-subject freshness bound (RFC 04 §1.2), when declared.
unit: Option<String>The subject’s unit (RFC 08 §4), when declared.
rate: Option<RateClass>Events rate class (RFC 04 §1.3), when declared.
cardinality: Option<i64>The declared key-population bound, when declared.
encoding: Option<WireEncoding>The declared payload encoding (application/cbor, …), when declared
(RFC 08 §2, v1.5). Resolution: sample Encoding > this > sniff.
WireEncoding carries its own Other arm, so it needs no
Declared wrapper — it has been this shape since v1.5.
Implementations§
Trait Implementations§
Source§impl Clone for SubjectDecl
impl Clone for SubjectDecl
Source§fn clone(&self) -> SubjectDecl
fn clone(&self) -> SubjectDecl
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 SubjectDecl
impl Debug for SubjectDecl
impl Eq for SubjectDecl
Source§impl PartialEq for SubjectDecl
impl PartialEq for SubjectDecl
impl StructuralPartialEq for SubjectDecl
Auto Trait Implementations§
impl Freeze for SubjectDecl
impl RefUnwindSafe for SubjectDecl
impl Send for SubjectDecl
impl Sync for SubjectDecl
impl Unpin for SubjectDecl
impl UnsafeUnpin for SubjectDecl
impl UnwindSafe for SubjectDecl
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