Skip to main content

DriftIssue

Enum DriftIssue 

Source
#[non_exhaustive]
pub enum DriftIssue {
Show 16 variants LedgerOnly { path: PathBuf, owner: Option<String>, }, ConfigOnly { path: PathBuf, }, OwnerMismatch { expected: String, actual: Option<String>, path: Option<PathBuf>, }, MalformedConfig { path: PathBuf, reason: String, }, MalformedLedger { path: PathBuf, reason: String, }, BackupCollision { path: PathBuf, }, MissingBackup { path: PathBuf, }, StaleBackup { path: PathBuf, }, UnexpectedDirectoryShape { path: PathBuf, reason: String, }, SkillMissingSkillMd { dir: PathBuf, missing: PathBuf, }, SkillAssetEscapesRoot { path: PathBuf, root: PathBuf, }, UnsupportedButPresent { path: PathBuf, }, SkillIncomplete { dir: PathBuf, missing: PathBuf, }, InstructionContentDrift { path: PathBuf, }, InvalidConfig { path: PathBuf, reason: String, }, MultipleEntries { name: String, count: usize, },
}
Expand description

One concrete reason a StatusReport is in the InstallStatus::Drifted state.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

LedgerOnly

Ownership ledger contains an entry, but the corresponding config, directory, or file entry is missing.

Fields

§path: PathBuf

The ledger path that contains the stale entry.

§owner: Option<String>

Owner recorded for the entry, when available.

§

ConfigOnly

Config, directory, or file entry exists without a matching ownership ledger entry.

Fields

§path: PathBuf

The unowned config, directory, or file path.

§

OwnerMismatch

The ledger owner does not match the owner the caller asked to validate against.

Fields

§expected: String

Expected owner tag.

§actual: Option<String>

Actual owner tag from the ledger.

§path: Option<PathBuf>

Ledger path that recorded the owner.

§

MalformedConfig

The harness config exists but cannot be parsed or has an unsupported shape for validation.

Fields

§path: PathBuf

The malformed config path.

§reason: String

Parser or shape error.

§

MalformedLedger

The agent-config ownership ledger exists but is not valid ledger JSON.

Fields

§path: PathBuf

The malformed ledger path.

§reason: String

Parser or shape error.

§

BackupCollision

A backup already exists from an earlier first-touch write.

Fields

§path: PathBuf

The existing backup path.

§

MissingBackup

A backup that validation expected to be present is missing.

Fields

§path: PathBuf

The expected backup path.

§

StaleBackup

A backup exists even though the validated install state does not need it.

Fields

§path: PathBuf

The stale backup path.

§

UnexpectedDirectoryShape

A directory-backed surface is not laid out as expected.

Fields

§path: PathBuf

The path with the unexpected shape.

§reason: String

Human-readable shape problem.

§

SkillMissingSkillMd

A skill directory exists but the required SKILL.md manifest is missing.

Fields

§dir: PathBuf

The skill directory.

§missing: PathBuf

The expected manifest path.

§

SkillAssetEscapesRoot

A skill file or symlink resolves outside the skill directory.

Fields

§path: PathBuf

The escaping asset path.

§root: PathBuf

The skill directory that should contain all assets.

§

UnsupportedButPresent

A known unsupported surface has files present on disk.

Fields

§path: PathBuf

The unsupported path that exists.

§

SkillIncomplete

A skill directory exists but the required SKILL.md manifest is missing.

Fields

§dir: PathBuf

The skill directory.

§missing: PathBuf

The expected manifest path.

§

InstructionContentDrift

An instruction file exists but the content hash does not match the ledger record.

Fields

§path: PathBuf

The instruction file path.

§

InvalidConfig

The harness config exists but cannot be parsed (malformed JSON, JSONC, JSON5, TOML, or YAML).

Fields

§path: PathBuf

The unparseable file.

§reason: String

The parser error message.

§

MultipleEntries

The same name appears in the harness config more than once. Defensive — most config formats reject this on parse, but YAML and JSONC accept duplicate keys silently in some readers.

Fields

§name: String

The duplicated name.

§count: usize

The number of times it appears.

Trait Implementations§

Source§

impl Clone for DriftIssue

Source§

fn clone(&self) -> DriftIssue

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 DriftIssue

Source§

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

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

impl PartialEq for DriftIssue

Source§

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

Source§

impl StructuralPartialEq for DriftIssue

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<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> Same for T

Source§

type Output = T

Should always be Self
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.