pub enum ReceiptWireForm {
Json,
Yaml,
}Expand description
Wire-form encoding a ReceiptEnvelope payload was serialized
in — the closed set of on-disk shapes the reader accepts.
Substrate primitive that closes the “which parser did this
payload use” corner at ONE typed enum: every dispatcher that
selects a parser (the shared ReceiptEnvelope::parse entry,
the ReceiptEnvelope::parse_json / ReceiptEnvelope::parse_yaml
wrappers, and the JSON-first-YAML-fallback
ReceiptEnvelope::parse_either) routes through one arm of this
enum, so a future wire form (e.g. a Cbor variant for a binary
emit path, an MsgPack variant for a bandwidth-tight probe) lands
as ONE variant + ONE arm of Self::parse_raw. Peer to
ReceiptKind on the “one closed-set typed enum per wire-format
axis” pattern — ReceiptKind closes the semantic kind axis
(what the receipt claims), this enum closes the encoding axis
(how the payload was written down).
The wrap-variant selection on the ReceiptError side
(ReceiptError::InvalidJson vs ReceiptError::InvalidYaml)
travels with the wire-form arm here, so operators reading a
failure surface see the encoding that failed without the caller
having to hand-thread a per-form string label. See
[Self::error_variant] for the closed-set mapping.
Variants§
Json
Compact JSON — the closed-loop-probe binary’s default emit
form and the shape serde_json::to_string(&env) produces.
Yaml
YAML — the shape a ConfigMap authored via kubectl apply -f
carries, and what serde_yaml::to_string(&env) produces.
Implementations§
Source§impl ReceiptWireForm
impl ReceiptWireForm
Sourcepub const ALL: [Self; 2]
pub const ALL: [Self; 2]
The closed set of wire-form encodings the reader accepts —
single source of truth that drives the JSON-first-YAML-fallback
sweep at ReceiptEnvelope::parse_either AND any future
enumeration consumer (a per-form metrics tag walker, a
tatara-check receipt-form auditor, a CLI --wire-form flag
completion list). Adding a third variant (e.g. Cbor for the
binary-emit corner already anticipated at Self’s enum
docstring, or MsgPack for a bandwidth-tight probe) lands as
ONE new variant + ONE arm on Self::parse_raw + ONE arm on
Self::as_str + ONE entry in Self::ALL — exhaustively
checked by the compiler (the [Self; N] array literal forces
the arity) AND by the per-variant truth-table tests below AND
by parse_either’s ALL-driven sweep (which auto-picks up the
new form without a per-consumer edit at the fallback chain).
Sibling closed-set tables across the crate’s typescape — this
entry closes the fourth axis they jointly own (semantic kind /
export report / process phase / boundary condition / intent
kind / wire-form encoding):
ReceiptKind::ALL,
crate::export::ReportFormat::ALL,
crate::phase::ProcessPhase::ALL,
crate::boundary::ConditionKind::ALL,
crate::intent::IntentKind::ALL.
The array order is JSON THEN YAML — matching the historical
ReceiptEnvelope::parse_either .or_else chain that tried
JSON first and YAML on JSON failure, so operator-facing log
lines reading the LAST-form error variant continue to see the
same fallback-form error (ReceiptError::InvalidYaml) on a
receipt payload that both forms reject. A regression that
reorders the entries surfaces at
[tests::receipt_wire_form_all_matches_declaration_order_json_then_yaml]
rather than as silent operator-facing skew across every
fallback log line.
Sourcepub const fn as_str(self) -> &'static str
pub const fn as_str(self) -> &'static str
Stable wire-form label — the short lowercase identifier
("json" / "yaml") an operator-facing log line, a
per-form metrics tag, or a future CLI flag surface can print
or match against. Pins the closed-set spelling at ONE table
so a downstream rename lands here rather than at every
consumer that hand-composed "json" / "yaml" inline.
Trait Implementations§
Source§impl Clone for ReceiptWireForm
impl Clone for ReceiptWireForm
Source§fn clone(&self) -> ReceiptWireForm
fn clone(&self) -> ReceiptWireForm
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for ReceiptWireForm
Source§impl Debug for ReceiptWireForm
impl Debug for ReceiptWireForm
impl Eq for ReceiptWireForm
Source§impl Hash for ReceiptWireForm
impl Hash for ReceiptWireForm
Source§impl PartialEq for ReceiptWireForm
impl PartialEq for ReceiptWireForm
impl StructuralPartialEq for ReceiptWireForm
Auto Trait Implementations§
impl Freeze for ReceiptWireForm
impl RefUnwindSafe for ReceiptWireForm
impl Send for ReceiptWireForm
impl Sync for ReceiptWireForm
impl Unpin for ReceiptWireForm
impl UnsafeUnpin for ReceiptWireForm
impl UnwindSafe for ReceiptWireForm
Blanket Implementations§
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<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> 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 moreimpl<T> OptionalSend for T
impl<T> OptionalSync for T
Source§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi Quirk value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);