Skip to main content

CacheRejection

Enum CacheRejection 

Source
pub enum CacheRejection {
    Absent,
    Unreadable,
    Oversize {
        size_bytes: u64,
        ceiling_bytes: u64,
    },
    Undecodable,
    VersionMismatch,
    ConfigHashMismatch,
    RootMismatch,
    ModeMismatch,
    FileSetChanged,
    FingerprintChanged,
}
Expand description

Why a cache load or a cache comparison refused to reuse persisted work.

Variants§

§

Absent

No cache file exists yet. The only variant that is not a refusal of existing work: a first run on a project reports this.

§

Unreadable

The cache path exists or could not be inspected, but reading it failed.

§

Oversize

The cache file is larger than the safety ceiling, so it was never decoded. Reported with both figures so the operator can raise the configured ceiling or delete the blob.

Fields

§size_bytes: u64

On-disk size of the refused cache file in bytes.

§ceiling_bytes: u64

Ceiling the file exceeded, in bytes.

§

Undecodable

The cache could not be decoded: an older unframed format, foreign data, or a damaged payload. This does not establish corruption.

§

VersionMismatch

The decoded cache declares a different format version, so its entries cannot be read into the current shape.

§

ConfigHashMismatch

The cache was built under a different extraction-affecting config, so its entries describe a different analysis.

§

RootMismatch

The graph cache was built for a different project root. Its retained absolute paths cannot be reused in the relocated checkout. Extraction entries remain independently reusable through their root-relative keys.

§

ModeMismatch

The graph cache decoded, but it was built with different resolver options, entry points, or plugin configuration.

§

FileSetChanged

The graph cache decoded, but the set of analysed files changed.

§

FingerprintChanged

The graph cache decoded and covers the same files, but at least one file’s content changed.

Implementations§

Source§

impl CacheRejection

Source

pub const fn id(&self) -> &'static str

Stable kebab-case identifier for logs, doctor output, and tests.

Source

pub fn describe(&self) -> String

Short human sentence fragment, suitable inside a perf row or a doctor message. Never contains a host path.

Source

pub const fn discarded_existing_work(&self) -> bool

Whether the refusal is worth putting on stderr.

True when the cache was refused for a reason the user can act on: a stale format, a config or root drift, a blob that would not decode. The user paid for the blob and got nothing back, and something on disk or in the config has to change before the next run does better.

False for Absent and for the two content-drift variants. Editing a file and re-running is the ordinary way to use fallow, so FileSetChanged and FingerprintChanged describe a cache doing exactly what it should: every edit-then-run cycle hit them, fallow watch hit them once per save, and --quiet did not suppress the warning. Both reasons stay on the doctor check and the performance table, where a reader went looking for them.

Trait Implementations§

Source§

impl Clone for CacheRejection

Source§

fn clone(&self) -> Self

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 CacheRejection

Source§

impl Debug for CacheRejection

Source§

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

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

impl Eq for CacheRejection

Source§

impl PartialEq for CacheRejection

Source§

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

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

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

Inequality operator !=. Read more
Source§

impl Serialize for CacheRejection

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for CacheRejection

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<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

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

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

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

Source§

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

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

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

Source§

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

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

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<'a, T> FromIn<'a, T> for T

Source§

fn from_in(t: T, _: &'a Allocator) -> T

Converts to this type from the input type within the given allocator.
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<'a, T, U> IntoIn<'a, U> for T
where U: FromIn<'a, T>,

Source§

fn into_in(self, allocator: &'a Allocator) -> U

Converts this type into the (usually inferred) input type within the given allocator.
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.