pub enum PolicyOutcome {
Allow = 0,
AllowWithLog = 1,
Modify = 2,
Deny = 3,
}Expand description
Policy outcome with deterministic precedence.
The precedence order forms a semilattice:
Deny > Modify > Allow with Log as a side-effect.
This ensures:
- Deterministic conflict resolution
- Associative composition
- Security-biased defaults (Deny wins)
Variants§
Allow = 0
Operation is allowed (lowest precedence)
AllowWithLog = 1
Operation is allowed but logged
Modify = 2
Operation is allowed with modification
Deny = 3
Operation is blocked (highest precedence)
Implementations§
Source§impl PolicyOutcome
impl PolicyOutcome
Sourcepub fn join(self, other: PolicyOutcome) -> PolicyOutcome
pub fn join(self, other: PolicyOutcome) -> PolicyOutcome
Combine two outcomes using the semilattice join (max precedence wins)
Trait Implementations§
Source§impl Clone for PolicyOutcome
impl Clone for PolicyOutcome
Source§fn clone(&self) -> PolicyOutcome
fn clone(&self) -> PolicyOutcome
Returns a duplicate of the value. Read more
1.0.0 · 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 PolicyOutcome
impl Debug for PolicyOutcome
Source§impl From<&PolicyAction> for PolicyOutcome
impl From<&PolicyAction> for PolicyOutcome
Source§fn from(action: &PolicyAction) -> Self
fn from(action: &PolicyAction) -> Self
Converts to this type from the input type.
Source§impl Ord for PolicyOutcome
impl Ord for PolicyOutcome
Source§fn cmp(&self, other: &PolicyOutcome) -> Ordering
fn cmp(&self, other: &PolicyOutcome) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl PartialEq for PolicyOutcome
impl PartialEq for PolicyOutcome
Source§impl PartialOrd for PolicyOutcome
impl PartialOrd for PolicyOutcome
impl Eq for PolicyOutcome
impl StructuralPartialEq for PolicyOutcome
Auto Trait Implementations§
impl Freeze for PolicyOutcome
impl RefUnwindSafe for PolicyOutcome
impl Send for PolicyOutcome
impl Sync for PolicyOutcome
impl Unpin for PolicyOutcome
impl UnwindSafe for PolicyOutcome
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,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.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>
Converts
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>
Converts
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