pub enum Semantic {
Show 16 variants
Keyword,
Symbol,
KeywordArg,
String,
Number,
Literal,
Comment,
Accent,
Muted,
Error,
Warning,
Info,
Hint,
Added,
Removed,
Unchanged,
}Variants§
Keyword
Language keywords — defcaixa, defteia, let, lambda, etc.
Symbol
Non-keyword symbols — identifiers, function names, variant names.
KeywordArg
:keyword-positioned atoms.
String
"string literals".
Number
42, 3.14.
Literal
#t, #f, nil.
Comment
; comments.
Accent
Primary accent — useful for highlights, carets, focused tokens.
Muted
Dim text — metadata, line numbers, help text.
Error
Warning
Info
Hint
Added
Removed
Unchanged
Implementations§
Source§impl Semantic
impl Semantic
pub const fn is_keyword(&self) -> bool
pub const fn is_symbol(&self) -> bool
pub const fn is_keyword_arg(&self) -> bool
pub const fn is_string(&self) -> bool
pub const fn is_number(&self) -> bool
pub const fn is_literal(&self) -> bool
pub const fn is_comment(&self) -> bool
pub const fn is_accent(&self) -> bool
pub const fn is_muted(&self) -> bool
pub const fn is_error(&self) -> bool
pub const fn is_warning(&self) -> bool
pub const fn is_info(&self) -> bool
pub const fn is_hint(&self) -> bool
pub const fn is_added(&self) -> bool
pub const fn is_removed(&self) -> bool
pub const fn is_unchanged(&self) -> bool
Source§impl Semantic
impl Semantic
Sourcepub const ALL: &'static [Self]
pub const ALL: &'static [Self]
Every variant of Semantic in declaration order.
The single canonical arm-list every substrate consumer that has
to walk the closed 15-arm semantic-style partition (the two
theme overlays’ exhaustive-match resolver functions
blackmatter_dark_color / blackmatter_light_color in
crate::blackmatter, the future LSP-side per-Semantic
SemanticTokenType dispatch at
caixa-lsp/src/main.rs, a future
feira lint --list-styles operator-facing enumeration verb)
reads for. Peer of the sibling closed-set fieldless typed
enums’ ALL slices already carried by
[caixa_core::CaixaKind] /
[caixa_core::supervisor::RestartStrategy] /
[caixa_core::supervisor::RestartPolicy] /
[caixa_core::aplicacao::PlacementStrategy] /
[caixa_core::upgrade::UpgradeInstruction] /
caixa_lint::diagnostic::Severity /
caixa_lint::diagnostic::FixSafety /
caixa_arch::InvariantKind / caixa_arch::ArchVerdict /
caixa_provedor::FerriteRuntime closed-set typed-enum
discriminator axes.
Sourcepub const fn as_str(self) -> &'static str
pub const fn as_str(self) -> &'static str
Canonical kebab-case discriminator scalar for this variant — the
single substrate-primitive &'static str projection every
downstream consumer of the closed 16-arm Semantic partition
(a future LSP-side per-Semantic SemanticTokenType name-mapping
dispatch at caixa-lsp/src/main.rs, a future
feira lint --list-styles operator-facing enumeration verb, a
future caixa.nvim per-Semantic highlight-group name resolver
that reaches for a stable kebab identifier per arm, a future
blackmatter-shell per-arm classname the terminal emitter
composes into a data-semantic="<kebab>" attribute) reaches
through. Kebab-case matches the peer
gen_platform::IsVariant-derived kebab discriminant convention
the sibling closed-set typed enums
([caixa_core::CaixaKind::as_str],
[caixa_core::supervisor::RestartStrategy::as_str],
[caixa_core::supervisor::RestartPolicy::as_str],
[caixa_core::aplicacao::PlacementStrategy::as_str],
[caixa_core::upgrade::UpgradeInstruction::as_str],
caixa_lint::diagnostic::Severity::as_str,
caixa_lint::diagnostic::FixSafety::as_str,
caixa_arch::InvariantKind::as_str,
caixa_arch::ArchVerdict::as_str,
caixa_provedor::FerriteRuntime::variant_slug) already emit
on their canonical &'static str projection axis.
The 16 arms return the kebab-case forms of their PascalCase
variant names (Keyword → "keyword", KeywordArg →
"keyword-arg", Unchanged → "unchanged", etc.), matching
the peer closed-set typed-enum canonical byte-string conventions.
Peer of the std::fmt::Display and AsRef<str> impls on
this enum, which both route through this accessor so
format!("{s}"), s.as_str(), and
<Semantic as AsRef<str>>::as_ref(&s) resolve to the same
per-arm byte-string.
Sourcepub fn from_wire(s: &str) -> Option<Self>
pub fn from_wire(s: &str) -> Option<Self>
Reverse projection on the Semantic closed 16-arm enum’s
canonical kebab-tag axis — parses a "keyword" / "symbol" /
"keyword-arg" / "string" / "number" / "literal" /
"comment" / "accent" / "muted" / "error" / "warning" /
"info" / "hint" / "added" / "removed" / "unchanged" wire
byte-string back to the typed enum, or returns None when s
lies outside the 16-arm accept-set Self::as_str emits. The
single &str → Self projection every future re-entry point on
the caixa-theme semantic-style axis dispatches through (a future
feira lint --list-styles operator-facing enumeration verb
hydrating a per-arm row from a stored kebab identifier back to
the typed enum before rendering, a future caixa-lsp-side
per-SemanticTokenType re-parse binding a prior
Self::as_str output back to the typed enum for
per-Semantic-highlight dispatch, a future caixa.nvim per-
Semantic highlight-group resolver re-loading a stored kebab
identifier back to the typed enum, a future blackmatter-shell
per-arm classname reverse-lookup binding a
data-semantic="<kebab>" DOM attribute back to the typed enum
for per-arm style dispatch, a tracing::field::Value::Str-arm
structured-log re-loader binding a prior emission’s
Self::as_str output back to the typed enum for cross-run
per-Semantic-paint-histogram diff) would have had to re-inline a
16-arm match s cascade that expressed no compile-time link back
to the substrate primitive.
Same closed-set-reverse-projection discipline the sibling
[caixa_core::CaixaKind::from_wire] (2aa6d23),
[caixa_core::CaixaDialeto::from_wire] (d0e65ea),
[caixa_core::supervisor::RestartStrategy::from_wire] (4eec29c),
[caixa_core::supervisor::RestartPolicy::from_wire] (dd32ccf),
[caixa_core::aplicacao::PlacementStrategy::from_wire] (18c7342),
[caixa_core::dep::DepList::from_wire] (45ee563),
[caixa_core::render::PathShapeViolation::from_wire] (aebd9c6),
caixa_arch::invariants::InvariantKind::from_wire (b9e4e61),
caixa_arch::report::ArchVerdict::from_wire (6afe564),
caixa_lint::diagnostic::Severity::from_wire (5afff0e), and
caixa_lint::diagnostic::FixSafety::from_wire (bd505a1) typed
enums carry on the peer wire-side str → Self axes — extends
the substrate-wide (as_str, from_wire) round-trip family onto
the caixa-theme closed-set fieldless typed-enum axis (the first
closed-set fieldless typed enum on caixa-theme to converge on
the reverse-projection discipline), matching the same two-way
str ↔ Self round-trip every sibling closed-set enum already
carries. Method-named from_wire (not from_str) to match the
peer shapes verbatim and side-step a
clippy::should_implement_trait lint that a plain from_str
name would otherwise trigger without paired
std::str::FromStr impl scaffolding this axis does not carry
today. Returns Option<Self> (rather than Result<Self, _>) to
match the peer shapes: the caller picks the diagnostic form
appropriate for its use site (a feira lint --list-styles CLI
arg-parse renders its own per-verb error message; a future
admission-webhook rejection body wraps the None outcome with
the accepted-set enumeration Semantic::ALL.iter().map(…) for
operator diagnostics).
Pinned load-bearing at the substrate-primitive level by
[tests::semantic_from_wire_accepts_every_as_str_output]
(round-trip witness against the peer Self::as_str axis) and
[tests::semantic_from_wire_rejects_unknown_byte_strings]
(rejection witness against silent accept-set widening).
Trait Implementations§
Source§impl AsRef<str> for Semantic
Substrate-canonical AsRef<str> projection on the caixa-theme
Semantic closed-set fieldless typed enum — routes through the
same Semantic::as_str pub const fn scalar accessor the paired
std::fmt::Display impl already reaches for.
impl AsRef<str> for Semantic
Substrate-canonical AsRef<str> projection on the caixa-theme
Semantic closed-set fieldless typed enum — routes through the
same Semantic::as_str pub const fn scalar accessor the paired
std::fmt::Display impl already reaches for.
Peer of the sibling AsRef<str> impls the substrate carries on
[caixa_core::CaixaKind], [caixa_core::CaixaVersion],
[caixa_core::CaixaDialeto], [caixa_core::dep::DepList],
[caixa_core::supervisor::RestartStrategy],
[caixa_core::supervisor::RestartPolicy],
[caixa_core::aplicacao::PlacementStrategy],
[caixa_core::aplicacao::RateLimitUnit],
caixa_lint::diagnostic::Severity,
caixa_arch::InvariantKind, caixa_arch::ArchVerdict,
caixa_provedor::FerriteRuntime — extends the substrate-wide
(as_str, AsRef<str>, Display) canonical-projection triple onto
the caixa-theme closed-set typed-enum axis, so a future consumer
bound through the trait-idiomatic .as_ref() (a
HashMap::get::<str>(sem.as_ref()) per-Semantic style-lookup, a
future caixa-lsp SemanticTokenType::new(sem.as_ref())
registration site, any impl AsRef<str>-bound generic function)
reaches the same kebab byte-string Semantic::as_str returns
rather than an open-coded .as_str() projection at every
wire-up.
impl Copy for Semantic
Source§impl<'de> Deserialize<'de> for Semantic
impl<'de> Deserialize<'de> for Semantic
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 Display for Semantic
std::fmt::Display routed through Semantic::as_str, so the
pretty-printed byte-string every consumer that formats the semantic
style as user-facing text lands on (a future feira lint --list-styles
operator-facing enumeration verb’s per-arm line, a future
caixa-lsp diagnostic-source line naming the offending semantic,
a future caixa.nvim per-Semantic highlight-group name emitter,
a tracing::field::display(&sem) structured-log recorder on the
paint-side emit path) reaches for the same lifted kebab-case
per-arm byte-string Semantic::as_str returns.
impl Display for Semantic
std::fmt::Display routed through Semantic::as_str, so the
pretty-printed byte-string every consumer that formats the semantic
style as user-facing text lands on (a future feira lint --list-styles
operator-facing enumeration verb’s per-arm line, a future
caixa-lsp diagnostic-source line naming the offending semantic,
a future caixa.nvim per-Semantic highlight-group name emitter,
a tracing::field::display(&sem) structured-log recorder on the
paint-side emit path) reaches for the same lifted kebab-case
per-arm byte-string Semantic::as_str returns.
Peer of the sibling std::fmt::Display impls on the closed-set
typed enums the substrate carries — [caixa_core::CaixaKind],
[caixa_core::supervisor::RestartStrategy],
[caixa_core::supervisor::RestartPolicy],
[caixa_core::aplicacao::PlacementStrategy],
[caixa_core::upgrade::UpgradeInstruction],
caixa_lint::diagnostic::Severity,
caixa_lint::diagnostic::FixSafety,
caixa_arch::InvariantKind, caixa_arch::ArchVerdict,
caixa_provedor::FerriteRuntime — extended to the second-to-last
un-lifted caixa-theme closed-set fieldless typed enum on the
substrate-wide (as_str, AsRef<str>, Display) canonical-projection
triple ratchet the prior lifts converged onto.
impl Eq for Semantic
Source§impl From<&Semantic> for &'static str
Trait-idiomatic borrowed-input forward projection on the
Semantic closed 16-arm caixa-theme semantic-style axis onto the
&'static str axis — the borrowed-input companion to the paired
owned-input [From<Semantic> for &'static str] impl immediately
above. Routes byte-for-byte through the same substrate-primitive
Semantic::as_str pub const fn accessor so every consumer that
binds a &Semantic through the standard-library .into() /
[From<&Self> for &'static str] axis (a
Semantic::ALL.iter().map(<&'static str>::from).collect::<Vec<_>>()
per-arm accept-set materializer — whose iterator over
&'static [Semantic] yields &Semantic, not Semantic, so the
owned-input From<Semantic> axis alone forces every call site
through an explicit .copied() / dereference / Copy-bound
restatement rather than the direct trait-idiomatic projection; a
future feira lint --list-styles operator-facing enumeration verb
composed via Semantic::ALL.iter().map(Into::into); a future
caixa-lsp per-SemanticTokenType registration walk that borrows
&Semantic off a stored per-style row; a future caixa.nvim per-
highlight-group re-loader that borrows &Semantic off the loaded
theme-overlay table; a future
HashMap::<&'static str, _>::from_iter(Semantic::ALL.iter().map( |sem| (<&'static str>::from(sem), 0))) per-Semantic-paint
histogram seed a future blackmatter-shell per-arm
data-semantic="<kebab>" DOM-attribute emit path composes) reaches
the same 16-arm "keyword" / "symbol" / "keyword-arg" /
"string" / "number" / "literal" / "comment" / "accent" /
"muted" / "error" / "warning" / "info" / "hint" /
"added" / "removed" / "unchanged" canonical-lowercase kebab
emit-set the paired owned-input [From<Semantic> for &'static str],
the sibling std::fmt::Display, AsRef<str>, and
Semantic::as_str surfaces already return.
impl From<&Semantic> for &'static str
Trait-idiomatic borrowed-input forward projection on the
Semantic closed 16-arm caixa-theme semantic-style axis onto the
&'static str axis — the borrowed-input companion to the paired
owned-input [From<Semantic> for &'static str] impl immediately
above. Routes byte-for-byte through the same substrate-primitive
Semantic::as_str pub const fn accessor so every consumer that
binds a &Semantic through the standard-library .into() /
[From<&Self> for &'static str] axis (a
Semantic::ALL.iter().map(<&'static str>::from).collect::<Vec<_>>()
per-arm accept-set materializer — whose iterator over
&'static [Semantic] yields &Semantic, not Semantic, so the
owned-input From<Semantic> axis alone forces every call site
through an explicit .copied() / dereference / Copy-bound
restatement rather than the direct trait-idiomatic projection; a
future feira lint --list-styles operator-facing enumeration verb
composed via Semantic::ALL.iter().map(Into::into); a future
caixa-lsp per-SemanticTokenType registration walk that borrows
&Semantic off a stored per-style row; a future caixa.nvim per-
highlight-group re-loader that borrows &Semantic off the loaded
theme-overlay table; a future
HashMap::<&'static str, _>::from_iter(Semantic::ALL.iter().map( |sem| (<&'static str>::from(sem), 0))) per-Semantic-paint
histogram seed a future blackmatter-shell per-arm
data-semantic="<kebab>" DOM-attribute emit path composes) reaches
the same 16-arm "keyword" / "symbol" / "keyword-arg" /
"string" / "number" / "literal" / "comment" / "accent" /
"muted" / "error" / "warning" / "info" / "hint" /
"added" / "removed" / "unchanged" canonical-lowercase kebab
emit-set the paired owned-input [From<Semantic> for &'static str],
the sibling std::fmt::Display, AsRef<str>, and
Semantic::as_str surfaces already return.
Fifteenth and final peer on the substrate-wide trait-idiomatic
borrowed-input &'static str-returning forward-projection family
already carried by [caixa_core::dep::DepList] (64aa742,
first-mover), [caixa_core::CaixaKind],
[caixa_core::CaixaDialeto],
[caixa_core::supervisor::RestartStrategy],
[caixa_core::supervisor::RestartPolicy],
[caixa_core::aplicacao::PlacementStrategy],
[caixa_core::aplicacao::WitShape],
[caixa_core::aplicacao::RateLimitUnit],
[caixa_core::render::PathShapeViolation] (cdf4e95, first render-
side arm), [caixa_arch::invariants::InvariantKind] (238d886,
first outside-caixa-core arm), [caixa_arch::report::ArchVerdict]
(73bda50), caixa_lint::diagnostic::Severity (2b9003f),
caixa_lint::diagnostic::FixSafety (d8769ab), and
caixa_provedor::FerriteRuntime (676d693). Rust’s From trait does
not auto-derive the From<&Self> sibling from a From<Self> impl
(the blanket impl<T, U> From<&T> for U where T: Copy, U: From<T>
does not exist in core), so every closed-set typed enum that
carries the owned-input axis but not the borrowed-input axis forces
every borrowed-input call site through a .copied() /
<&'static str>::from(*sem) / sem.as_str() detour whose type
bounds have no compile-time link to the substrate primitive.
Lifting the borrowed-input axis on the caixa-theme semantic-style
16-arm closed-set fieldless typed enum closes that gap on the same
trajectory the paired owned-input axis
([impl From<Semantic> for &'static str] immediately above) already
opened, and closes the trait-idiomatic borrowed-input
&'static str-returning axis on the last remaining substrate-wide
closed-set fieldless typed enum whose borrowed-input axis was still
open — the substrate-wide 2×2-completion campaign now covers every
closed-set fieldless typed enum on the caixa surface on the
borrowed-input &'static str-returning axis.
Pinned load-bearing by
[tests::semantic_from_borrowed_into_static_str_routes_through_as_str_accessor]
(byte-parity pin against Semantic::as_str across the 16-arm
emit-set via a borrowed input, plus a const-context
materialization witness for the &'static str lifetime promise)
and
[tests::semantic_from_owned_and_borrowed_into_static_str_agree_on_every_arm]
(cross-axis partition pin against the paired owned-input
[From<Semantic> for &'static str] impl, plus a
.iter().map(Into::into) pipe witness over Semantic::ALL whose
iterator yields &Semantic by construction so this borrowed-input
axis is what routes the pipe through the substrate-primitive
accessor without a spurious Copy deref).
Source§impl From<&Semantic> for String
Trait-idiomatic borrowed-input, owned-String output forward
projection on the Semantic closed 16-arm caixa-theme semantic-
style axis — the borrowed-input companion to the paired owned-
input [From<Semantic> for String] (5ea146c) immediately above,
the paired borrowed-input [From<&Semantic> for &'static str]
(ffc0f26), and the paired owned-input
[From<Semantic> for &'static str] siblings above. Routes byte-
for-byte through the substrate-primitive Semantic::as_str
pub const fn accessor via str::to_owned so every consumer
that binds a Semantic through the standard-library .into() /
[From<&Self> for String] axis reaches the same 16-arm
"keyword" / "symbol" / "keyword-arg" / "string" /
"number" / "literal" / "comment" / "accent" / "muted" /
"error" / "warning" / "info" / "hint" / "added" /
"removed" / "unchanged" canonical-lowercase kebab emit-set
the paired std::fmt::Display, AsRef<str>,
Semantic::as_str, and the three other trait-idiomatic
forward-projection impls already return — no
sem.as_str().to_owned() / String::from(*sem) (with a spurious
Copy deref) / sem.to_string() (through
std::fmt::Display) detour whose type bounds have no compile-
time link to the substrate primitive.
impl From<&Semantic> for String
Trait-idiomatic borrowed-input, owned-String output forward
projection on the Semantic closed 16-arm caixa-theme semantic-
style axis — the borrowed-input companion to the paired owned-
input [From<Semantic> for String] (5ea146c) immediately above,
the paired borrowed-input [From<&Semantic> for &'static str]
(ffc0f26), and the paired owned-input
[From<Semantic> for &'static str] siblings above. Routes byte-
for-byte through the substrate-primitive Semantic::as_str
pub const fn accessor via str::to_owned so every consumer
that binds a Semantic through the standard-library .into() /
[From<&Self> for String] axis reaches the same 16-arm
"keyword" / "symbol" / "keyword-arg" / "string" /
"number" / "literal" / "comment" / "accent" / "muted" /
"error" / "warning" / "info" / "hint" / "added" /
"removed" / "unchanged" canonical-lowercase kebab emit-set
the paired std::fmt::Display, AsRef<str>,
Semantic::as_str, and the three other trait-idiomatic
forward-projection impls already return — no
sem.as_str().to_owned() / String::from(*sem) (with a spurious
Copy deref) / sem.to_string() (through
std::fmt::Display) detour whose type bounds have no compile-
time link to the substrate primitive.
Fills the last remaining corner of the substrate-wide
{Self, &Self} × {&'static str, String} 2×2 trait-idiomatic
projection family on the sole closed-set fieldless typed enum on
the caixa-theme surface — and, by construction, the final
corner on the entire substrate-wide closed-set fieldless typed-
enum roster on the caixa surface, closing the substrate-wide
2×2-completion campaign that opened on
[caixa_core::supervisor::RestartStrategy] (579385f, first-mover
on the borrowed-input owned-String axis). Rust’s standard
library carries no blanket
impl<T: AsRef<str>> From<&T> for String (nor an
impl<T: fmt::Display> From<&T> for String), so every borrowed-
input owned-string call site — a future
serde_json::Value::String(String::from(&sem)) structured-payload
composer over a borrowed per-style row where the
[serde_json::Value::String] arm typing demands an owned
String and the sibling &'static str-returning axes force an
explicit .to_owned() / String::from restatement, a future
Semantic::ALL.iter().map(String::from).collect::<Vec<_>>() per-
arm accept-set materializer on a future feira lint --list-styles
operator-facing enumeration verb whose iterator yields &Semantic
by construction (so the borrowed-input owned-String axis is
what routes the pipe through the substrate-primitive
Semantic::as_str accessor without a spurious .copied() /
Copy-bound dereference), a future
HashMap::<String, usize>::from_iter(Semantic::ALL.iter().map(|sem| (String::from(sem), 0)))
per-Semantic-paint histogram seed a future blackmatter-shell
per-arm data-semantic="<kebab>" DOM-attribute emit path
composes off a borrowed &Semantic off the loaded theme-overlay
table, a future caixa-lsp per-SemanticTokenType registration
walk borrowing off a stored per-style row, a future caixa.nvim
per-highlight-group re-loader borrowing off the loaded theme-
overlay table where the runtime stores the owned kebab identifier
as String — otherwise resolves through the detour above.
Closing this corner locks the caixa-theme semantic-style enum’s
whole 2×2 trait-idiomatic projection family onto a single
Semantic::as_str-routed emit-set — any future arm addition (a
Namespace tier between [Self::Symbol] and [Self::KeywordArg]
for the M4 tatara-lisp module system’s qualified-name semantic-
token dispatch, a Deleted tier for a hard-delete-mark distinct
from [Self::Removed] the future 3-way diff surface grows — both
trajectory items the sibling Semantic::ALL doc block already
names) reaches every projection path through exactly one caixa-
theme edit on the Semantic::as_str pub const fn accessor,
and the partition pin trips at test time on the first detour
that drifts a corner off.
Sixteenth and final peer on the substrate-wide trait-idiomatic
borrowed-input, owned-String output forward-projection family,
closing the substrate-wide 2×2-completion campaign across every
closed-set fieldless typed enum on the caixa surface — opened on
[caixa_core::supervisor::RestartStrategy] (579385f), extended
through [caixa_core::supervisor::RestartPolicy] (8465740),
[caixa_core::dep::DepList] (e0cb617),
[caixa_core::CaixaKind] (e76436d),
[caixa_core::CaixaDialeto] (d3c0d1d),
[caixa_core::aplicacao::PlacementStrategy] (d3dc000),
[caixa_core::aplicacao::WitShape] (d638fd3),
[caixa_core::aplicacao::RateLimitUnit] (6424e45 — closing the
whole M3 mesh-primitive triple’s 2×2 corner),
[caixa_core::render::PathShapeViolation] (b90e193 — first
outside-manifest-surface arm on this axis),
[caixa_arch::invariants::InvariantKind] (3c3f66f — first
outside-caixa-core arm),
[caixa_arch::report::ArchVerdict] (3cfb3b5 — second outside-
caixa-core arm), caixa_lint::diagnostic::Severity (9518ab9 —
third outside-caixa-core arm),
caixa_lint::diagnostic::FixSafety (807f67d — fourth outside-
caixa-core arm), and caixa_provedor::FerriteRuntime (0caedec
— fifth outside-caixa-core arm), and now this lift on the
sixth-and-last outside-caixa-core closed-set enum — the caixa-
theme semantic-style 16-arm axis every per-Semantic paint
dispatch, every future caixa-lsp per-SemanticTokenType wire-
up, every future caixa.nvim per-highlight-group re-loader, and
every future blackmatter-shell per-arm data-semantic="<kebab>"
DOM emission keys off. Every future closed-set fieldless typed
enum lifted onto the caixa surface picks up the same 2×2 trait-
idiomatic projection family by construction as the substrate
discipline.
Same three-path convergence discipline as the paired owned-input
impl (this borrowed-input axis, the paired owned-input
[From<Semantic> for String], and Semantic::as_str all
route through the same 16-arm inline canonical-lowercase kebab
byte-strings), so a future arm addition reaches every one of the
paired forward-projection paths through exactly one caixa-theme
edit on the Semantic::as_str pub const fn accessor.
The Semantic::as_str emit and Semantic::from_wire parse
share the same 16 inline canonical-lowercase kebab byte-strings
by construction — so the borrowed-input owned-String forward
axis and the reverse TryFrom<&str> axis compose directly (via
the owned-String’s String::as_str borrow) without an
intermediate wire-vocab hop. The round-trip witness pin below
locks this direct composition on the caixa-theme semantic-style
enum’s borrowed-input owned-String axis pair.
Pinned load-bearing by
[tests::semantic_from_borrowed_into_owned_string_routes_through_as_str_accessor]
(byte-parity pin against Semantic::as_str across the 16-arm
emit-set through the borrowed-input surface, plus a blanket-
derived Into<String> shape witness) and
[tests::semantic_from_borrowed_into_owned_string_agrees_with_paired_axes_on_every_arm]
(cross-axis partition pin against every one of the four 2×2
corners — the paired owned-input owned-String
[From<Semantic> for String] impl (5ea146c), the paired
borrowed-input owned-[&'static str]
[From<&Semantic> for &'static str] impl (ffc0f26), and the
paired owned-input owned-[&'static str]
[From<Semantic> for &'static str] impl — plus a
ToString::to_string-through-std::fmt::Display byte-parity
witness, plus a .iter().map(String::from) pipe witness over
Semantic::ALL (whose iterator yields &Semantic by
construction, so the borrowed-input owned-String axis is
what routes the pipe through the substrate-primitive
Semantic::as_str accessor without a spurious Copy deref),
plus a direct round-trip witness through TryFrom<&str> on the
owned-String’s String::as_str borrow that closes the two-
way &Self → String → Self round-trip on the trait-idiomatic
borrowed-input owned-String forward + reverse axis pair).
Source§impl From<Semantic> for &'static str
Standard-library trait-idiomatic forward projection on the
Semantic closed 16-arm caixa-theme semantic-style axis. Routes
byte-for-byte through the paired substrate-primitive
Semantic::as_str pub const fn accessor so
<&'static str>::from(sem) / sem.into::<&'static str>() reaches
the same 16-arm canonical-lowercase kebab emit-set the sibling
method-named accessor dispatches through and the sibling
[std::fmt::Display for Semantic] / [AsRef<str> for Semantic]
impls also route through.
impl From<Semantic> for &'static str
Standard-library trait-idiomatic forward projection on the
Semantic closed 16-arm caixa-theme semantic-style axis. Routes
byte-for-byte through the paired substrate-primitive
Semantic::as_str pub const fn accessor so
<&'static str>::from(sem) / sem.into::<&'static str>() reaches
the same 16-arm canonical-lowercase kebab emit-set the sibling
method-named accessor dispatches through and the sibling
[std::fmt::Display for Semantic] / [AsRef<str> for Semantic]
impls also route through.
Extends the substrate-wide closed-set-enum trait-idiomatic
forward-projection family
([caixa_core::supervisor::RestartStrategy] via 523157d,
[caixa_core::supervisor::RestartPolicy] via 9fb37d0,
[caixa_core::CaixaKind] via edb827b,
[caixa_core::CaixaDialeto] via c189a6f,
[caixa_core::aplicacao::PlacementStrategy] via afa3562,
[caixa_core::aplicacao::WitShape] via 56998ec,
[caixa_core::aplicacao::RateLimitUnit] via 7fdfbf4,
[caixa_core::render::PathShapeViolation] via 070a6de,
[caixa_arch::invariants::InvariantKind] via f2ca7bc,
[caixa_arch::report::ArchVerdict] via d4559cb,
caixa_lint::diagnostic::Severity via 5cc3b8b, and
caixa_lint::diagnostic::FixSafety via 2a56127) onto the first
closed-set fieldless typed enum on the caixa-theme surface — the
semantic-style 16-arm accept-set every per-Semantic paint dispatch,
every future caixa-lsp per-SemanticTokenType wire-up, every
future caixa.nvim per-highlight-group re-loader, and every future
blackmatter-shell per-arm data-semantic="<kebab>" DOM emission
keys off. The thirteenth peer on the substrate surface, closing the
caixa-theme closed-set fieldless typed-enum axis onto the trait-
idiomatic forward-projection axis and matching the paired trait-
idiomatic reverse-projection axis (already closed via bd7da69 on
this enum), with only caixa_provedor::FerriteRuntime remaining as
the last outside-caixa-core closed-set fieldless typed enum whose
trait-idiomatic forward axis is still open.
Pairs with the sibling [TryFrom<&str> for Semantic] impl (bd7da69)
to close the two-way Self ↔ &'static str round-trip on the
trait-idiomatic axis pair, mirroring the pre-existing method-named
Semantic::as_str + Semantic::from_wire pair on the
substrate-primitive axis pair.
Return type is &'static str by construction — every
Semantic::as_str arm resolves to an inline "keyword" /
"symbol" / "keyword-arg" / "string" / "number" /
"literal" / "comment" / "accent" / "muted" / "error" /
"warning" / "info" / "hint" / "added" / "removed" /
"unchanged" &'static str literal, so the trait’s return-type
promise is upheld structurally without a String::leak cast or a
per-arm inline literal outside the paired Semantic::as_str
dispatch.
The paired Semantic::as_str accessor’s 16-arm emit-set is the
single source of truth — every future arm addition (a Namespace
tier between [Self::Symbol] and [Self::KeywordArg] for the M4
tatara-lisp module system’s qualified-name semantic-token dispatch,
a Deleted tier for a hard-delete-mark distinct from
[Self::Removed] the future 3-way diff surface grows — both
trajectory items the sibling Semantic::ALL doc block already
names) grows the trait-idiomatic forward axis by construction: one
caixa-theme edit on Semantic::as_str extends every one of the
sibling forward-projection paths (std::fmt::Display,
AsRef<str>, Semantic::as_str itself, and this
[From<Self> for &'static str]) without a coordinated rewrite
across every future Into<&'static str>-bound consumer’s arm-set.
Pinned load-bearing by
[tests::semantic_from_into_static_str_routes_through_as_str_accessor]
(byte-parity pin against Semantic::as_str across the 16-arm
emit-set, plus a const-context materialization witness for the
&'static str lifetime promise routed through the paired
Semantic::as_str pub const fn accessor, plus a paired
.into() shape assertion covering the blanket-derived
Into<&'static str> shape) and
[tests::semantic_from_into_static_str_and_as_str_partition_the_emit_set]
(partition pin asserting <&'static str as From<Semantic>>::from
and Semantic::as_str agree on every arm, plus a two-way direct
round-trip witness through the paired trait-idiomatic
TryFrom<&str> axis that closes the two-way
Self ↔ &'static str round-trip on the trait-idiomatic axis pair
— the emit-side Semantic::as_str and the parse-side
Semantic::from_wire dispatch on the same 16 inline canonical-
lowercase kebab byte-strings by construction, so round-tripping
composes the two trait impls directly).
Source§impl From<Semantic> for String
Trait-idiomatic owned-input, owned-String output forward
projection on the Semantic closed 16-arm caixa-theme
semantic-style axis — the owned-String companion to the paired
[From<Semantic> for &'static str] and
[From<&Semantic> for &'static str] siblings immediately above.
Routes byte-for-byte through the substrate-primitive
Semantic::as_str pub const fn accessor via
str::to_owned so every consumer that binds a Semantic
through the standard-library .into() / [From<Self> for String]
axis (a let key: String = sem.into();-shaped downstream call
site; a future serde_json::Value::String(sem.into()) structured-
payload composer where the Value::String arm typing demands an
owned String and the sibling &'static str-returning axes
force an explicit .to_owned() / String::from restatement at
every call site; a future
HashMap::<String, Semantic>::from_iter per-semantic lookup on
a future caixa-lsp per-SemanticTokenType registration path
where the map’s key type is owned String rather than
&'static str; a future
[std::borrow::Cow::<'static, str>::Owned(sem.into())] composer
on a future feira lint --list-styles operator-facing enumeration
verb’s per-arm row where an owned [Cow] arm typing rules;
a future caixa.nvim per-highlight-group re-loader that stores
the per-Semantic kebab identifier as an owned String on the
theme-overlay table; a future blackmatter-shell per-arm
data-semantic="<kebab>" DOM emission whose serializer’s
Serialize impl on String owns the emit-path) reaches the
same 16-arm "keyword" / "symbol" / "keyword-arg" /
"string" / "number" / "literal" / "comment" / "accent" /
"muted" / "error" / "warning" / "info" / "hint" /
"added" / "removed" / "unchanged" canonical-lowercase kebab
emit-set the paired &'static str-returning axes, the sibling
std::fmt::Display, AsRef<str>, and Semantic::as_str
surfaces already return — no .to_owned() /
String::from(sem.as_str()) detour whose type bounds have no
compile-time link to the substrate primitive.
impl From<Semantic> for String
Trait-idiomatic owned-input, owned-String output forward
projection on the Semantic closed 16-arm caixa-theme
semantic-style axis — the owned-String companion to the paired
[From<Semantic> for &'static str] and
[From<&Semantic> for &'static str] siblings immediately above.
Routes byte-for-byte through the substrate-primitive
Semantic::as_str pub const fn accessor via
str::to_owned so every consumer that binds a Semantic
through the standard-library .into() / [From<Self> for String]
axis (a let key: String = sem.into();-shaped downstream call
site; a future serde_json::Value::String(sem.into()) structured-
payload composer where the Value::String arm typing demands an
owned String and the sibling &'static str-returning axes
force an explicit .to_owned() / String::from restatement at
every call site; a future
HashMap::<String, Semantic>::from_iter per-semantic lookup on
a future caixa-lsp per-SemanticTokenType registration path
where the map’s key type is owned String rather than
&'static str; a future
[std::borrow::Cow::<'static, str>::Owned(sem.into())] composer
on a future feira lint --list-styles operator-facing enumeration
verb’s per-arm row where an owned [Cow] arm typing rules;
a future caixa.nvim per-highlight-group re-loader that stores
the per-Semantic kebab identifier as an owned String on the
theme-overlay table; a future blackmatter-shell per-arm
data-semantic="<kebab>" DOM emission whose serializer’s
Serialize impl on String owns the emit-path) reaches the
same 16-arm "keyword" / "symbol" / "keyword-arg" /
"string" / "number" / "literal" / "comment" / "accent" /
"muted" / "error" / "warning" / "info" / "hint" /
"added" / "removed" / "unchanged" canonical-lowercase kebab
emit-set the paired &'static str-returning axes, the sibling
std::fmt::Display, AsRef<str>, and Semantic::as_str
surfaces already return — no .to_owned() /
String::from(sem.as_str()) detour whose type bounds have no
compile-time link to the substrate primitive.
Rust’s standard library does not carry a blanket
impl<T: AsRef<str>> From<T> for String (nor an
impl<T: fmt::Display> From<T> for String), so every closed-set
typed enum that carries the paired AsRef<str> /
std::fmt::Display / [From<Self> for &'static str] /
[From<&Self> for &'static str] quadruple but not the owned-
String axis forces every owned-string call site through the
detour above. This lift closes that axis on the sole closed-set
fieldless typed enum on the caixa-theme surface (the semantic-
style 16-arm axis), extending the substrate-wide
{Self, &Self} × {&'static str, String} 2×2-completion campaign
onto the sixth outside-caixa-core closed-set fieldless typed
enum on the caixa surface — matching the trajectory each of the
twelve prior peer enums —
[caixa_core::supervisor::RestartStrategy] (7baa18a, first-mover
on this axis), [caixa_core::supervisor::RestartPolicy] (7851725),
[caixa_core::CaixaKind] (231a18c),
[caixa_core::CaixaDialeto] (88942cd),
[caixa_core::dep::DepList] (32b0ee8),
[caixa_core::aplicacao::PlacementStrategy] (1154c2f),
[caixa_core::aplicacao::WitShape] (79a8723),
[caixa_core::aplicacao::RateLimitUnit] (c7d687d),
[caixa_core::render::PathShapeViolation] (6e0479a, first render-
side arm), [caixa_arch::invariants::InvariantKind] (1afd8d5,
first outside-caixa-core arm — the paired severity-classification
axis on the caixa-arch invariant-kind closed-set enum),
[caixa_arch::report::ArchVerdict] (cc80a53, the paired verdict-
outcome axis on the sibling caixa-arch closed-set enum),
caixa_lint::diagnostic::Severity (4635d4e),
caixa_lint::diagnostic::FixSafety (e4d73c6), and
caixa_provedor::FerriteRuntime (1e14fde, the paired ferrite-
runtime axis on the sole caixa-provedor closed-set enum) —
followed on the same 2×2-completion campaign.
Pinned load-bearing by
[tests::semantic_from_into_owned_string_routes_through_as_str_accessor]
(byte-parity pin against Semantic::as_str across the 16-arm
emit-set via the owned-String surface, plus a blanket-derived
Into<String> shape witness) and
[tests::semantic_from_into_owned_string_and_static_str_agree_on_every_arm]
(cross-axis partition pin against the paired owned-input
&'static str-returning [From<Semantic> for &'static str] impl
and the ToString::to_string-through-std::fmt::Display
surface, plus a .iter().copied().map(String::from) pipe witness
over Semantic::ALL, plus a direct Self → String → Self
round-trip witness through the paired TryFrom<&str> axis on
the owned-String’s String::as_str borrow).
impl StructuralPartialEq for Semantic
Source§impl TryFrom<&str> for Semantic
Trait-idiomatic reverse projection on the Semantic closed 16-arm
caixa-theme semantic-style axis — routes byte-for-byte through the
paired substrate-primitive Semantic::from_wire Option<Self>
accessor so every future consumer that binds a canonical semantic
tag through the standard-library .try_into() / TryFrom axis
(a future feira lint --semantic=<kebab> CLI arg-parse that
composes into let sem: Semantic = s.try_into()?, a future
caixa-lsp per-token re-parse hydrating a prior
Semantic::as_str output back to the typed enum for
SemanticTokenType dispatch, a future caixa.nvim per-highlight-
group re-loader binding a stored kebab byte-string back through the
typed enum, a generic <T: TryFrom<&str>>-bound theme-overlay
re-loader over any of the substrate’s closed-set typed enums)
reaches the same 16-arm accept-set the sibling
Semantic::from_wire resolver parses through and the sibling
Semantic::as_str emits, rather than an open-coded per-arm
match s { "keyword" => …, "symbol" => …, … _ => … } cascade whose
arm-set has no compile-time link back to the substrate primitive.
impl TryFrom<&str> for Semantic
Trait-idiomatic reverse projection on the Semantic closed 16-arm
caixa-theme semantic-style axis — routes byte-for-byte through the
paired substrate-primitive Semantic::from_wire Option<Self>
accessor so every future consumer that binds a canonical semantic
tag through the standard-library .try_into() / TryFrom axis
(a future feira lint --semantic=<kebab> CLI arg-parse that
composes into let sem: Semantic = s.try_into()?, a future
caixa-lsp per-token re-parse hydrating a prior
Semantic::as_str output back to the typed enum for
SemanticTokenType dispatch, a future caixa.nvim per-highlight-
group re-loader binding a stored kebab byte-string back through the
typed enum, a generic <T: TryFrom<&str>>-bound theme-overlay
re-loader over any of the substrate’s closed-set typed enums)
reaches the same 16-arm accept-set the sibling
Semantic::from_wire resolver parses through and the sibling
Semantic::as_str emits, rather than an open-coded per-arm
match s { "keyword" => …, "symbol" => …, … _ => … } cascade whose
arm-set has no compile-time link back to the substrate primitive.
Complements the pre-existing forward-projection triple
(std::fmt::Display, AsRef<str>, Semantic::as_str) with
the paired trait-idiomatic reverse-projection axis: Rust-side
newtype/typed-enum convention pairs AsRef<str> with either
std::str::FromStr or TryFrom<&str> on the same primitive so
a caller who can project out to a &str can also project in
from one. The TryFrom<&str> axis is deliberately chosen over
std::str::FromStr to sidestep the clippy::should_implement_trait
lint the sibling method-named Semantic::from_wire would trigger
under a FromStr impl (the same design tradeoff the peer
[caixa_core::CaixaKind] (3c83606),
[caixa_core::CaixaDialeto] (bf33136),
[caixa_core::aplicacao::PlacementStrategy] (6fd00cd),
[caixa_core::supervisor::RestartStrategy] (5b828ed),
[caixa_core::supervisor::RestartPolicy] (6fdd0d9),
[caixa_core::aplicacao::WitShape] (5472902),
[caixa_core::aplicacao::RateLimitUnit] (bf78400),
[caixa_core::render::PathShapeViolation] (e67e48a),
caixa_arch::invariants::InvariantKind (e21a857),
caixa_arch::report::ArchVerdict (0a4cc45),
caixa_lint::diagnostic::Severity (a7bf74c), and
caixa_lint::diagnostic::FixSafety (df86c94) blocks note) — this
impl closes the trait-idiomatic reverse axis without disturbing the
method-named from_wire shape every peer closed-set typed enum
already carries.
type Error = () matches the sibling Semantic::from_wire’s
Option<Self> return-shape’s deliberate deferral of error typing:
the caller picks the diagnostic form appropriate for its use site
(a future feira lint --semantic CLI arg-parse composes its own
per-verb “unknown semantic-style tag: Semantic::ALL, a future admission-webhook
rejection body wraps the Err(()) outcome with the accepted-set
enumeration for operator diagnostics, a Result::map_err at the
call site lifts the axis-error to a per-verb error type). Same
shape the peer sibling reverse-projection axes carry. The return-
shape uses fully-qualified <Self as TryFrom<&str>>::Error because
the associated-type name would otherwise collide with the
Self::Error variant on the same primitive (the identical
ambiguous-associated-item defect the sibling
impl TryFrom<&str> for Severity (a7bf74c) already threads around
under #[deny(future_incompatible)]).
The paired TryFrom<&str> impl reaches the same 16-arm accept-
set the Semantic::from_wire resolver dispatches through, so any
future arm addition (a Namespace tier between Self::Symbol
and Self::KeywordArg for the M4 tatara-lisp module system’s
qualified-name semantic-token dispatch, a Deleted tier for a
hard-delete-mark distinct from Self::Removed the future 3-way
diff surface grows — both trajectory items the sibling
Semantic::ALL doc block already names) grows the trait-
idiomatic axis by construction: one caixa-theme edit on
Semantic::from_wire extends both the method-named reverse
projection every existing consumer keys off and the trait-
idiomatic reverse projection this impl exposes, without a
coordinated rewrite across every future TryFrom<&str>-bound
consumer’s arm-set.
Extends the substrate-wide closed-set-enum trait-idiomatic
reverse-projection family ([caixa_core::CaixaKind] via 3c83606,
[caixa_core::CaixaDialeto] via bf33136,
[caixa_core::aplicacao::PlacementStrategy] via 6fd00cd,
[caixa_core::supervisor::RestartStrategy] via 5b828ed,
[caixa_core::supervisor::RestartPolicy] via 6fdd0d9,
[caixa_core::aplicacao::WitShape] via 5472902,
[caixa_core::aplicacao::RateLimitUnit] via bf78400,
[caixa_core::render::PathShapeViolation] via e67e48a,
caixa_arch::invariants::InvariantKind via e21a857,
caixa_arch::report::ArchVerdict via 0a4cc45,
caixa_lint::diagnostic::Severity via a7bf74c, and
caixa_lint::diagnostic::FixSafety via df86c94) onto the first
closed-set fieldless typed enum on the caixa-theme surface — the
semantic-style 16-arm accept-set every per-Semantic paint dispatch,
every future caixa-lsp per-SemanticTokenType wire-up, and every
future caixa.nvim per-highlight-group re-loader keys off. The
thirteenth peer on the substrate surface, and the first inside
caixa-theme; with caixa_provedor::FerriteRuntime remaining as
the only outside-caixa-core closed-set fieldless typed enum whose
trait-idiomatic axis is still open.
Pinned load-bearing by
[tests::semantic_try_from_str_routes_through_from_wire_accessor]
(byte-parity pin against Semantic::from_wire across the 16-arm
accept-set) and
[tests::semantic_try_from_str_rejects_unknown_byte_strings]
(rejection witness against silent accept-set widening).
Auto Trait Implementations§
impl Freeze for Semantic
impl RefUnwindSafe for Semantic
impl Send for Semantic
impl Sync for Semantic
impl Unpin for Semantic
impl UnsafeUnpin for Semantic
impl UnwindSafe for Semantic
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
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<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.