pub struct DegradationController { /* private fields */ }Expand description
Thread-safe degradation controller.
Implementations§
Source§impl DegradationController
impl DegradationController
Sourcepub fn new(config: DegradationConfig) -> Self
pub fn new(config: DegradationConfig) -> Self
Create a new degradation controller with the given configuration.
Sourcepub fn default_controller() -> Self
pub fn default_controller() -> Self
Create a controller with default configuration.
Create an Arc-wrapped controller for sharing across threads.
Sourcepub fn current_level(&self) -> DegradationLevel
pub fn current_level(&self) -> DegradationLevel
Get current degradation level.
Sourcepub fn update(&self, status: &ResourceStatus) -> (DegradationLevel, bool)
pub fn update(&self, status: &ResourceStatus) -> (DegradationLevel, bool)
Update degradation level based on resource status. Returns the new level and whether it changed.
Sourcepub fn force_level(&self, level: DegradationLevel)
pub fn force_level(&self, level: DegradationLevel)
Force a specific degradation level (for testing or manual intervention).
Sourcepub fn level_change_count(&self) -> u64
pub fn level_change_count(&self) -> u64
Get number of level changes.
Sourcepub fn is_degraded(&self) -> bool
pub fn is_degraded(&self) -> bool
Check if currently degraded (not Normal).
Sourcepub fn config(&self) -> &DegradationConfig
pub fn config(&self) -> &DegradationConfig
Get the configuration.
Trait Implementations§
Source§impl Debug for DegradationController
impl Debug for DegradationController
Auto Trait Implementations§
impl !Freeze for DegradationController
impl RefUnwindSafe for DegradationController
impl Send for DegradationController
impl Sync for DegradationController
impl Unpin for DegradationController
impl UnsafeUnpin for DegradationController
impl UnwindSafe for DegradationController
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
Mutably borrows from an owned value. Read more
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<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.