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 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