Skip to main content

PolicyLifecycle

Enum PolicyLifecycle 

Source
pub enum PolicyLifecycle {
    Loaded(CompiledId),
    Superseded(CompiledId),
    Removed(CompiledId),
}
Expand description

A policy-lifecycle event, parallel to Lifecycle but scoped to a compiled artifact rather than an account. Without it, an evaluator that accumulates state per compiled policy (a cache, a counter) has no way to learn that one of its artifacts no longer corresponds to anything the tree will ever route to again, and keeps it forever.

Delivery is not reliable, and does not need to be: a caller who never sends Removed for a policy that stopped existing has left an evaluator holding a stale artifact, but the tree this crate builds decides what is routed anywhere – a stale artifact nothing routes to is a memory leak, never a correctness problem. See plan/policy.md’s “a missed removal is inert, not dangerous.” Do not build retry or acknowledgement machinery for this channel.

Variants§

§

Loaded(CompiledId)

compile produced this artifact and it is now (or remains) the one a tree may route decisions to.

§

Superseded(CompiledId)

A newer compile of the same logical policy succeeded, and this artifact is no longer the one any tree routes to – safe to drop. Never sent when a newer revision failed to compile: didbot-pds’s loader keeps routing to the last-good artifact in that case, so it is very much still in use – see plan/policy.md’s last-good- revision behaviour.

§

Removed(CompiledId)

The record this artifact was compiled from is gone from every source – deleted, or never re-observed after a source’s own failure recovered onto a view that no longer names it. Safe to drop.

Trait Implementations§

Source§

impl Clone for PolicyLifecycle

Source§

fn clone(&self) -> PolicyLifecycle

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 PolicyLifecycle

Source§

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

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

impl PartialEq for PolicyLifecycle

Source§

fn eq(&self, other: &PolicyLifecycle) -> 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 Copy for PolicyLifecycle

Source§

impl Eq for PolicyLifecycle

Source§

impl StructuralPartialEq for PolicyLifecycle

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.