pub enum RecordRunTurnsOutcome {
Appended {
new_total: usize,
},
RefusedCeiling,
UnknownOrTerminal,
PersistenceFailed(String),
}Expand description
Outcome of ServerState::record_run_turns — distinguishes the three
reasons a batch can fail to land so the caller maps each to the right
runs.record_turns drop reason (ADV-1). Before this enum the function
returned a bare usize (the new total, or 0 for “nothing appended”),
which collapsed an under-lock CEILING refusal and an unknown/terminal run
into the same 0 — the handler then mislabeled a ceiling refusal as
run_terminal.
Variants§
Appended
The batch was appended; the run’s new total turn count.
RefusedCeiling
The batch was refused WHOLE because it would take the run past
RECORD_TURNS_RUN_CEILING (a runaway backstop). Maps to
dropped: "run_turn_limit".
UnknownOrTerminal
The run id is unknown to this process OR already terminal — nothing
was appended. Maps to dropped: "run_terminal" (the benign TOCTOU:
the run went terminal between the handler’s pre-check and the
append), matching the prior silent-zero semantics.
PersistenceFailed(String)
The batch cannot advance canonical memory/subscribers. Ordinary I/O
failures mean the durable append boundary was not acknowledged and an
exact retry is safe. A run trace corruption: error instead means the
bytes exposed committed middle corruption; the run is quarantined and
must not be retried or completed.
Trait Implementations§
Source§impl Clone for RecordRunTurnsOutcome
impl Clone for RecordRunTurnsOutcome
Source§impl Debug for RecordRunTurnsOutcome
impl Debug for RecordRunTurnsOutcome
impl Eq for RecordRunTurnsOutcome
Source§impl PartialEq for RecordRunTurnsOutcome
impl PartialEq for RecordRunTurnsOutcome
impl StructuralPartialEq for RecordRunTurnsOutcome
Auto Trait Implementations§
impl Freeze for RecordRunTurnsOutcome
impl RefUnwindSafe for RecordRunTurnsOutcome
impl Send for RecordRunTurnsOutcome
impl Sync for RecordRunTurnsOutcome
impl Unpin for RecordRunTurnsOutcome
impl UnsafeUnpin for RecordRunTurnsOutcome
impl UnwindSafe for RecordRunTurnsOutcome
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,
impl<S, T> Duplex<S> for Twhere
T: FromSample<S> + ToSample<S>,
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more