Enum RiskLevel
pub enum RiskLevel {
None,
Low,
Destructive,
Privileged,
Sensitive,
}Expand description
Consequence class used by policy, confirmation UI, and audit logs.
Variants§
None
Presentation-only or otherwise observational.
Low
A reversible edit or ordinary external effect.
Destructive
Deletes, overwrites, publishes, purchases, or otherwise causes a consequential change that is not cheaply reversible.
Privileged
Crosses an administrative or security boundary.
Sensitive
Reads or exports private user data. It needs an explicit confirmation, but unlike deletion it does not itself alter the source resource.
This is deliberately appended: RiskLevel is also encoded by compact
serde formats, where reordering variants would reinterpret old audit
records and envelopes.
Implementations§
§impl RiskLevel
impl RiskLevel
pub fn requires_confirmation(self) -> bool
pub fn requires_confirmation(self) -> bool
Whether a change of this class must be explicitly confirmed before it runs: deletions and overwrites, crossings of a security boundary, and exports of private data.
pub const fn name(self) -> &'static str
pub const fn name(self) -> &'static str
The level’s name, as it is written outside a typed message (a question a host relays, an activity facet).
pub fn from_name(name: &str) -> Option<RiskLevel>
pub fn from_name(name: &str) -> Option<RiskLevel>
The level Self::name names; None for any other word.
Trait Implementations§
§impl<'de> Deserialize<'de> for RiskLevel
impl<'de> Deserialize<'de> for RiskLevel
§fn deserialize<__D>(
__deserializer: __D,
) -> Result<RiskLevel, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<RiskLevel, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
§impl Serialize for RiskLevel
impl Serialize for RiskLevel
§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl Copy for RiskLevel
impl Eq for RiskLevel
impl StructuralPartialEq for RiskLevel
Auto Trait Implementations§
impl Freeze for RiskLevel
impl RefUnwindSafe for RiskLevel
impl Send for RiskLevel
impl Sync for RiskLevel
impl Unpin for RiskLevel
impl UnsafeUnpin for RiskLevel
impl UnwindSafe for RiskLevel
Blanket Implementations§
§impl<T> AnyEq for T
impl<T> AnyEq for T
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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