Skip to main content

Semantic

Enum Semantic 

Source
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

Source

pub const fn is_keyword(&self) -> bool

Source

pub const fn is_symbol(&self) -> bool

Source

pub const fn is_keyword_arg(&self) -> bool

Source

pub const fn is_string(&self) -> bool

Source

pub const fn is_number(&self) -> bool

Source

pub const fn is_literal(&self) -> bool

Source

pub const fn is_comment(&self) -> bool

Source

pub const fn is_accent(&self) -> bool

Source

pub const fn is_muted(&self) -> bool

Source

pub const fn is_error(&self) -> bool

Source

pub const fn is_warning(&self) -> bool

Source

pub const fn is_info(&self) -> bool

Source

pub const fn is_hint(&self) -> bool

Source

pub const fn is_added(&self) -> bool

Source

pub const fn is_removed(&self) -> bool

Source

pub const fn is_unchanged(&self) -> bool

Source§

impl Semantic

Source

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.

Source

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.

Source

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.

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.

Source§

fn as_ref(&self) -> &str

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl Clone for Semantic

Source§

fn clone(&self) -> Semantic

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for Semantic

Source§

impl Debug for Semantic

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for Semantic

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
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.

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.

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

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.

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§

fn from(sem: &Semantic) -> &'static str

Converts to this type from the input type.
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.

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§

fn from(sem: &Semantic) -> String

Converts to this type from the input type.
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.

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§

fn from(sem: Semantic) -> &'static str

Converts to this type from the input type.
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.

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).

Source§

fn from(sem: Semantic) -> String

Converts to this type from the input type.
Source§

impl Hash for Semantic

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for Semantic

Source§

fn eq(&self, other: &Semantic) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for Semantic

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

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.

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: — accepted: {…}” message enumerating 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).

Source§

type Error = ()

The type returned in the event of a conversion error.
Source§

fn try_from(s: &str) -> Result<Self, <Self as TryFrom<&str>>::Error>

Performs the conversion.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.