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 Eq for DriftIssue

Source§

impl PartialEq for DriftIssue

Source§

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

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.