pub struct RecoveryCascade {
pub budget: u32,
pub spent: u32,
pub current_level: CascadeLevel,
pub escalations_used: u32,
pub steps: u32,
}Expand description
The shared-pool cascade for one node (Definition 8.1).
Fields§
§budget: u32The non-replenishing shared budget b.
spent: u32§current_level: CascadeLevel§escalations_used: u32§steps: u32Implementations§
Source§impl RecoveryCascade
impl RecoveryCascade
pub fn new(budget: u32) -> Self
Sourcepub fn step_bound(&self) -> u32
pub fn step_bound(&self) -> u32
The Theorem 6 bound: every cascade terminates within b + k steps.
Sourcepub fn grant(&mut self, requested: CascadeLevel) -> GrantedControl
pub fn grant(&mut self, requested: CascadeLevel) -> GrantedControl
Request a control. A request at or below the current level is a horizontal repetition and consumes one unit of the shared pool; a request above it is a strict escalation and consumes a level. When the pool is exhausted below the top, the grant is forced strictly upward (Definition 8.1’s second condition).
Trait Implementations§
Source§impl Clone for RecoveryCascade
impl Clone for RecoveryCascade
Source§fn clone(&self) -> RecoveryCascade
fn clone(&self) -> RecoveryCascade
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · 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 RecoveryCascade
impl Debug for RecoveryCascade
Source§impl<'de> Deserialize<'de> for RecoveryCascade
impl<'de> Deserialize<'de> for RecoveryCascade
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
Source§impl PartialEq for RecoveryCascade
impl PartialEq for RecoveryCascade
Source§fn eq(&self, other: &RecoveryCascade) -> bool
fn eq(&self, other: &RecoveryCascade) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl Serialize for RecoveryCascade
impl Serialize for RecoveryCascade
impl Eq for RecoveryCascade
impl StructuralPartialEq for RecoveryCascade
Auto Trait Implementations§
impl Freeze for RecoveryCascade
impl RefUnwindSafe for RecoveryCascade
impl Send for RecoveryCascade
impl Sync for RecoveryCascade
impl Unpin for RecoveryCascade
impl UnsafeUnpin for RecoveryCascade
impl UnwindSafe for RecoveryCascade
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§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 more§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).§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.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.