pub enum SampleStage {
AtBoundary,
InSample,
}Expand description
Whether the sample that produced a proposal had closed by the time the proposal was made — declared by the proposer, because only the turn knows. The actor never stores it as state and never routes on it; it exists so the held-steer release can check the argument it rests on instead of resting on a comment (commit-protocol.md §Read invariant, and the 72a6f1b held-steer rule).
The argument, stated: a steer held while a turn is live may land the
moment one of that turn’s commits settles, because a turn commits nothing
between granting itself a snapshot and the Completed group that closes
the sample — so every ack the actor handles is genuinely between samples.
That is true of every proposal site today and it is exactly what
SampleStage::InSample exists to catch when it stops being true.
Variants§
AtBoundary
The sample that produced this commit had already closed (or none was running). A held steer may land behind it: the model’s reply is already durable, so nothing can precede an assistant item that could not have seen it.
InSample
The commit lands while its own sample is still streaming. No such
site exists today; §Commit granularity’s intra-sample BlockEnd
pipelining would create the first, and on that day a steer released
behind one would land ahead of the assistant item the model is still
producing — the exact inversion 72a6f1b fixed. Declaring this is what
makes that a loud failure rather than a silent regression.
Trait Implementations§
Source§impl Clone for SampleStage
impl Clone for SampleStage
Source§fn clone(&self) -> SampleStage
fn clone(&self) -> SampleStage
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for SampleStage
Source§impl Debug for SampleStage
impl Debug for SampleStage
impl Eq for SampleStage
Source§impl PartialEq for SampleStage
impl PartialEq for SampleStage
impl StructuralPartialEq for SampleStage
Auto Trait Implementations§
impl Freeze for SampleStage
impl RefUnwindSafe for SampleStage
impl Send for SampleStage
impl Sync for SampleStage
impl Unpin for SampleStage
impl UnsafeUnpin for SampleStage
impl UnwindSafe for SampleStage
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§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.