pub struct Intent {
pub nix: Option<NixIntent>,
pub flux: Option<FluxIntent>,
pub lisp: Option<LispIntent>,
pub container: Option<ContainerIntent>,
pub aplicacao: Option<AplicacaoIntent>,
pub guest: Option<GuestIntent>,
}Expand description
Intent — exactly one variant should be populated.
Fields§
§nix: Option<NixIntent>§flux: Option<FluxIntent>§lisp: Option<LispIntent>§container: Option<ContainerIntent>§aplicacao: Option<AplicacaoIntent>§guest: Option<GuestIntent>Implementations§
Source§impl Intent
impl Intent
Sourcepub fn variant(&self) -> Result<IntentVariant<'_>, IntentError>
pub fn variant(&self) -> Result<IntentVariant<'_>, IntentError>
Resolve to exactly one variant. Errors on zero or many.
One-line inherent forwarder that delegates the sweep
body to the substrate primitive
crate::tagged_union::TaggedUnion::variant — every
production .variant() site on ProcessSpec dispatches
through this ONE default body so the resolve-sweep
pattern lives at ONE substrate site. The inherent surface
stays load-bearing so consumer callsites don’t need
use TaggedUnion.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Intent
impl<'de> Deserialize<'de> for Intent
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for Intent
impl JsonSchema for Intent
Source§fn schema_name() -> String
fn schema_name() -> String
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn is_referenceable() -> bool
fn is_referenceable() -> bool
$ref keyword. Read moreSource§impl TaggedUnion for Intent
impl TaggedUnion for Intent
Source§const KIND_LIST: &'static str = INTENT_KIND_LIST
const KIND_LIST: &'static str = INTENT_KIND_LIST
TaggedUnionError::empty when no slot is populated on this
tagged union. Pinned against
<Self::Kind as tatara_closed_set::ClosedSet>::labels_joined("/")
by assert_kind_list_matches_closed_set so a variant added
to Self::Kind without updating this constant (or a renamed
variant) fails-loudly at the testkit boundary.Source§type Kind = IntentKind
type Kind = IntentKind
tatara_closed_set::ClosedSet so the generic
diagnostic-stability testkit (assert_kind_list_matches_closed_set)
can project <Self::Kind as ClosedSet>::labels_joined("/")
against Self::KIND_LIST byte-identically. Additionally
bound to VariantSelector<Self> so Self::variant’s
default body can dispatch k.select(self) at each
[ClosedSet::ALL] entry generically.Source§type Error = IntentError
type Error = IntentError
.variant() method — projects onto the shared
TaggedUnionError contract so resolve_or_err’s two-arm
dispatch reaches every implementor uniformly.Source§fn variant(
&self,
) -> Result<<Self::Kind as VariantSelector<Self>>::Variant<'_>, Self::Error>
fn variant( &self, ) -> Result<<Self::Kind as VariantSelector<Self>>::Variant<'_>, Self::Error>
Self::Kind discriminator in
ClosedSet::ALL order,
projecting each into the parent’s borrowed variant view via
VariantSelector::select, and resolve to exactly one populated
variant through resolve_or_err. Errors on zero (with
Self::KIND_LIST carried on the TaggedUnionError::empty
arm) or many. Read moreSource§impl VariantSelector<Intent> for IntentKind
impl VariantSelector<Intent> for IntentKind
Source§type Variant<'a> = IntentVariant<'a>
type Variant<'a> = IntentVariant<'a>
.variant() method — one arm per closed-set variant, each
arm carrying a &'a reference into the parent’s populated
slot. Bound generically here so TaggedUnion::variant’s
default body can name the return type without restating it
per parent. Additionally bound to VariantKind<Self> so
the reverse projection Variant<'a> → Self is closed at the
trait boundary — every implementor’s borrowed view knows its
addressing Kind through ONE typed contract, and the substrate
testkit assert_variant_round_trip composes select
(forward) with variant_kind (reverse) generically.Source§fn select<'a>(self, parent: &'a Intent) -> Option<IntentVariant<'a>>where
Self: 'a,
fn select<'a>(self, parent: &'a Intent) -> Option<IntentVariant<'a>>where
Self: 'a,
&'a P borrow into the optional typed variant view
for self (the addressed discriminator). Returns None iff
the matching slot on P is None. Composes the closed-set
sweep TaggedUnion::variant loops over.Auto Trait Implementations§
impl Freeze for Intent
impl RefUnwindSafe for Intent
impl Send for Intent
impl Sync for Intent
impl Unpin for Intent
impl UnsafeUnpin for Intent
impl UnwindSafe for Intent
Blanket Implementations§
impl<T> AppData for Twhere
T: OptionalSend + OptionalSync + 'static + OptionalSerde,
impl<T> AppDataResponse for Twhere
T: OptionalSend + OptionalSync + 'static + OptionalSerde,
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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);