Skip to main content

InvalidationTrigger

Enum InvalidationTrigger 

Source
pub enum InvalidationTrigger {
    CapturedDeclaration {
        watched: Identity<CapturedDeclaration>,
    },
    Profile {
        watched: Profile,
    },
    Generator {
        watched: Identity<GeneratorVersion>,
    },
    ProjectionContent {
        watched: Identity<ProjectionContent>,
    },
    Declared {
        name: &'static str,
        watched: OwnerIdentity,
    },
}
Expand description

One thing whose change makes a plan stale, and exactly which thing it watches.

A relevant change invalidates loudly and names what moved; a change no row watches — formatting, declaration order, an alias — touches nothing, because nothing watches those.

Variants§

§

CapturedDeclaration

A captured declaration the plan stands on.

Fields

§watched: Identity<CapturedDeclaration>

The watched capture.

§

Profile

The profile the plan was decided under, at the version it was decided at.

Fields

§watched: Profile

The watched profile.

§

Generator

The generator that produced the plan.

Fields

§watched: Identity<GeneratorVersion>

The watched generator version.

§

ProjectionContent

The kind-specific content commitment the plan was decided over.

Fields

§watched: Identity<ProjectionContent>

The watched content commitment.

§

Declared

Anything else a consumer declared this plan watches.

One row rather than a row per consumer noun: a mechanism profile, a work formula, and a fixture population are three consumers’ facts, and a compiler that enumerated them would be minting vocabulary for meanings it does not own.

Fields

§name: &'static str

The consumer’s declared name for what moved.

§watched: OwnerIdentity

The identity that moving is watched by.

Implementations§

Source§

impl InvalidationTrigger

Source

pub fn encode_into(&self, into: &mut Vec<u8>)

Appends this trigger’s canonical bytes: the row’s discriminant, then what it watches.

Two rows watching one thing never encode alike, because the discriminant rides ahead of the material.

Source§

impl InvalidationTrigger

Source

pub const fn slot(&self) -> u8

The discriminant byte a canonical encoding writes ahead of what this row watches.

Source§

impl InvalidationTrigger

Source

pub fn one_watched(trigger: Self) -> InvalidationSet

The one-trigger watch set. Total: one trigger always fits.

Source

pub fn watched( first: Self, rest: Vec<Self>, ) -> Result<InvalidationSet, PlanError>

Watches these triggers, the first one and the rest.

Several triggers of one row are lawful where they watch distinct things.

§Errors

Returns the planning refusal naming BoundAxis::Triggers where the set outgrows TRIGGER_LIMIT.

Trait Implementations§

Source§

impl Clone for InvalidationTrigger

Source§

fn clone(&self) -> InvalidationTrigger

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 Copy for InvalidationTrigger

Source§

impl Debug for InvalidationTrigger

Source§

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

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

impl Eq for InvalidationTrigger

Source§

impl Hash for InvalidationTrigger

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for InvalidationTrigger

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for InvalidationTrigger

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
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 = !

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

fn try_from(value: U) -> Result<T, !>

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.