pub enum Era {
V1,
V2,
}Expand description
Protocol era: the coarse behavioral generation a negotiated version belongs to.
The whole v2.5 milestone era-gates off this classifier. V1 covers every
2024/2025 protocol version (the compatibility layer); V2 is the
2026-07-28 stateless/Tasks/MCP-Apps generation. Unknown or unrecognized
versions conservatively classify as Era::V1 so a malformed or
forward-dated version string can never accidentally reach v2 behavior.
§Why this derives Hash
The emit-time outputSchema validator cache in
crate::server::output_validation is keyed on (Era, schema text), not on
the schema text alone: under Phase 115 D-01 the SAME schema document
compiles to two DIFFERENT validators depending on the era (v1 auto-detects
the declared $schema dialect; v2 pins Draft 2020-12). Keying on text alone
would be first-writer-wins for the process lifetime — whichever era compiled
a given schema first would serve its validator to the other. Hash on this
fieldless enum is what makes the tuple key possible.
Variants§
V1
The 2024/2025 protocol generation (compatibility layer, current default).
V2
The 2026-07-28 protocol generation (opt-in, stateless-first).
Trait Implementations§
impl Copy for Era
impl Eq for Era
impl StructuralPartialEq for Era
Auto Trait Implementations§
impl Freeze for Era
impl RefUnwindSafe for Era
impl Send for Era
impl Sync for Era
impl Unpin for Era
impl UnsafeUnpin for Era
impl UnwindSafe for Era
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.