pub enum Edition {
E2026_06,
}Expand description
A workflow semantics edition this build implements.
An edition is a sticky behavioral declaration (the NixOS stateVersion
model), so this enum is deliberately exhaustive and its arms are append-only:
a future default change adds an arm here plus a row in defaults and
leaves every sealed arm — and every code path reading it — untouched. A name
no arm implements is refused at the boundary by Edition::parse, never
folded into a neighbouring arm.
Variants§
E2026_06
2026.06, sealed at v0.1.0. Contract: docs/editions/2026.06.md.
Implementations§
Source§impl Edition
impl Edition
Sourcepub const fn base(&self) -> &'static str
pub const fn base(&self) -> &'static str
The bare YYYY.MM base this edition’s contract document is keyed by.
Sourcepub fn current() -> Edition
pub fn current() -> Edition
The arm this build’s own CURRENT_WORKFLOW_EDITION spells: what a
participant runs at when nothing pins it elsewhere.
Sourcepub fn parse(edition: &str) -> Result<Edition, UnknownEdition>
pub fn parse(edition: &str) -> Result<Edition, UnknownEdition>
Resolve a wire edition name to the arm it names.
The name is split at its first - exactly as edition_sort_key splits
it: the YYYY.MM base names the contract, and a cohort suffix only
identifies a moving build of that SAME base (YYYY.MM-<semver-prerelease>
or YYYY.MM-dev.<git-token>). So every cohort spelling of a known base
resolves to that base’s arm — this build’s own
(CURRENT_WORKFLOW_EDITION, e.g. 2026.06-0.1.0-rc.12) and equally a
retained older base’s cohort, which this build never spells itself.
Whitespace is trimmed; a base no arm implements is an UnknownEdition.
This is the ONLY place an edition name is compared as a string. Every guard and default downstream branches on the typed value.
Trait Implementations§
impl Copy for Edition
impl Eq for Edition
impl StructuralPartialEq for Edition
Auto Trait Implementations§
impl Freeze for Edition
impl RefUnwindSafe for Edition
impl Send for Edition
impl Sync for Edition
impl Unpin for Edition
impl UnsafeUnpin for Edition
impl UnwindSafe for Edition
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,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request