Skip to main content

PolicyDeclaration

Struct PolicyDeclaration 

Source
pub struct PolicyDeclaration {
    pub applicability: Applicability,
    pub observes: Applicability,
    pub staleness: Staleness,
    pub predicate: Predicate,
    pub revision: Revision,
}
Expand description

One policy: its applicability, its observation surface, its staleness mode, its predicate, and its own revision.

A policy is not its wrapper — see plan/policy.md’s “A policy is not its wrapper”. This is the policy itself, already stripped of the transport-shaped metadata (source, format version) that got it here.

Fields§

§applicability: Applicability

What this policy may be asked to decide. Feeds the decision tree that PolicyTree::decision_candidates walks. Simple declarative data, deliberately never delegated to an engine — see Predicate’s doc comment for why a PolicyDeclaration is never reached at all when this cannot be made sense of, and holds only the one real failure: a known-good applicability paired with a predicate that is not.

§observes: Applicability

What this policy is told about, whether or not it is the one deciding. Feeds a second, independent tree — see Evaluator::observe’s doc comment for why this has to be separate from applicability.

§staleness: Staleness

How stale this policy’s evaluator’s view may be. Duplicated per policy rather than looked up from the evaluator, even though one evaluator answers the same for all of its policies today, because a future evaluator serving policies of genuinely different staleness should not require restructuring this type.

§predicate: Predicate

What decides this policy — a working evaluator, or a named Predicate::Unusable.

§revision: Revision

This policy record’s own revision. See Revision.

Trait Implementations§

Source§

impl Clone for PolicyDeclaration

Source§

fn clone(&self) -> PolicyDeclaration

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for PolicyDeclaration

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for PolicyDeclaration

Source§

fn eq(&self, other: &PolicyDeclaration) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for PolicyDeclaration

Source§

impl StructuralPartialEq for PolicyDeclaration

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.