pub enum Enforcement {
Enforced,
Mediated,
Unsupported,
}Expand description
The enforcement-strength axis of a support verdict.
One of two ORTHOGONAL axes (the other is EvidenceSet): this grades how
strongly a requirement is held; the evidence set grades what can be
witnessed about it. The two never collapse — a backend may enforce strongly
yet witness little (a structural guarantee with nothing per-attempt to see).
Variants§
Enforced
The backend can guarantee the requirement (strong primitive present).
Mediated
The backend can honor the requirement only by mediating each attempt (e.g. a broker / notifier), not by a structural guarantee.
Unsupported
The backend cannot honor the requirement at all on this machine. Only
ever a backend ANSWER; never a requested value. Forces plan() closed.
Implementations§
Source§impl Enforcement
impl Enforcement
Sourcepub fn meet(self, other: Self) -> Self
pub fn meet(self, other: Self) -> Self
The MEET of the enforcement lattice in the SECURITY order (Enforced
strongest, Unsupported the fail-closed bottom). Unsupported on either
side wins (absorbing); this is the algebra the admission matrix floors a
family best-case by a machine ceiling with. (Note: the derived Ord runs
the other way — declaration order — so this meet equals the Ord MAX.)
Trait Implementations§
Source§impl Clone for Enforcement
impl Clone for Enforcement
Source§fn clone(&self) -> Enforcement
fn clone(&self) -> Enforcement
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for Enforcement
Source§impl Debug for Enforcement
impl Debug for Enforcement
Source§impl<'de> Deserialize<'de> for Enforcement
impl<'de> Deserialize<'de> for Enforcement
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>,
impl Eq for Enforcement
Source§impl Hash for Enforcement
impl Hash for Enforcement
Source§impl Ord for Enforcement
impl Ord for Enforcement
Source§fn cmp(&self, other: &Enforcement) -> Ordering
fn cmp(&self, other: &Enforcement) -> Ordering
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for Enforcement
impl PartialEq for Enforcement
Source§fn eq(&self, other: &Enforcement) -> bool
fn eq(&self, other: &Enforcement) -> bool
self and other values to be equal, and is used by ==.Source§impl PartialOrd for Enforcement
impl PartialOrd for Enforcement
Source§impl Serialize for Enforcement
impl Serialize for Enforcement
impl StructuralPartialEq for Enforcement
Auto Trait Implementations§
impl Freeze for Enforcement
impl RefUnwindSafe for Enforcement
impl Send for Enforcement
impl Sync for Enforcement
impl Unpin for Enforcement
impl UnsafeUnpin for Enforcement
impl UnwindSafe for Enforcement
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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>
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