pub struct RolloutTracker {
pub phase: RolloutPhase,
pub last_transition_ms: i64,
pub transition_count: u32,
pub rolled_back_from: Option<RolloutPhase>,
pub trigger: RollbackTrigger,
pub recent_decisions: VecDeque<RolloutDecisionSample>,
}Expand description
Mutable rollout tracking state stored inside ExtensionManagerInner.
Fields§
§phase: RolloutPhase§last_transition_ms: i64§transition_count: u32§rolled_back_from: Option<RolloutPhase>§trigger: RollbackTrigger§recent_decisions: VecDeque<RolloutDecisionSample>Rolling window of recent decision outcomes for rollback evaluation.
Implementations§
Source§impl RolloutTracker
impl RolloutTracker
Sourcepub fn new(phase: RolloutPhase) -> Self
pub fn new(phase: RolloutPhase) -> Self
Create a tracker starting in the given phase.
Sourcepub fn advance(&mut self) -> bool
pub fn advance(&mut self) -> bool
Advance to the next phase. Returns true if the phase changed.
Sourcepub fn rollback(&mut self)
pub fn rollback(&mut self)
Roll back to Shadow phase, recording what phase we rolled back from.
Sourcepub fn set_phase(&mut self, phase: RolloutPhase)
pub fn set_phase(&mut self, phase: RolloutPhase)
Set an explicit phase (for operator override).
Sourcepub fn record_decision(
&mut self,
latency_ms: u64,
was_error: bool,
was_false_positive: bool,
) -> bool
pub fn record_decision( &mut self, latency_ms: u64, was_error: bool, was_false_positive: bool, ) -> bool
Record a decision sample and check rollback triggers.
Returns true if a rollback was triggered.
Sourcepub fn window_stats(&self) -> RollbackWindowStats
pub fn window_stats(&self) -> RollbackWindowStats
Compute window statistics for the current evaluation window.
Trait Implementations§
Source§impl Clone for RolloutTracker
impl Clone for RolloutTracker
Source§fn clone(&self) -> RolloutTracker
fn clone(&self) -> RolloutTracker
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for RolloutTracker
impl Debug for RolloutTracker
Source§impl Default for RolloutTracker
impl Default for RolloutTracker
Source§impl<'de> Deserialize<'de> for RolloutTracker
impl<'de> Deserialize<'de> for RolloutTracker
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for RolloutTracker
impl RefUnwindSafe for RolloutTracker
impl Send for RolloutTracker
impl Sync for RolloutTracker
impl Unpin for RolloutTracker
impl UnsafeUnpin for RolloutTracker
impl UnwindSafe for RolloutTracker
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, _span: NoopSpan) -> Self
fn instrument(self, _span: NoopSpan) -> Self
Instruments this future with a span (no-op when disabled).
Source§fn in_current_span(self) -> Self
fn in_current_span(self) -> Self
Instruments this future with the current span (no-op when disabled).
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>
Converts
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>
Converts
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 moreSource§impl<T> ModelDump for Twhere
T: Serialize,
impl<T> ModelDump for Twhere
T: Serialize,
Source§fn model_dump(&self, options: DumpOptions) -> Result<Value, Error>
fn model_dump(&self, options: DumpOptions) -> Result<Value, Error>
Serialize a model to a JSON value. Read more
Source§fn model_dump_json(&self) -> Result<String, Error>
fn model_dump_json(&self) -> Result<String, Error>
Serialize a model to a JSON string with default options.
Source§fn model_dump_json_pretty(&self) -> Result<String, Error>
fn model_dump_json_pretty(&self) -> Result<String, Error>
Serialize a model to a pretty-printed JSON string.
Source§fn model_dump_json_with_options(
&self,
options: DumpOptions,
) -> Result<String, Error>
fn model_dump_json_with_options( &self, options: DumpOptions, ) -> Result<String, Error>
Serialize a model to a JSON string with full options support. Read more
Source§impl<T> ModelValidate for Twhere
T: DeserializeOwned,
impl<T> ModelValidate for Twhere
T: DeserializeOwned,
Source§fn model_validate(
input: impl Into<ValidateInput>,
options: ValidateOptions,
) -> Result<T, ValidationError>
fn model_validate( input: impl Into<ValidateInput>, options: ValidateOptions, ) -> Result<T, ValidationError>
Create and validate a model from input. Read more
Source§fn model_validate_json(json: &str) -> Result<Self, ValidationError>
fn model_validate_json(json: &str) -> Result<Self, ValidationError>
Create and validate a model from JSON string with default options.
Source§fn model_validate_dict(
dict: HashMap<String, Value>,
) -> Result<Self, ValidationError>
fn model_validate_dict( dict: HashMap<String, Value>, ) -> Result<Self, ValidationError>
Create and validate a model from a HashMap with default options.
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as
ReadEndian::read_from_little_endian().