Skip to main content

InstallStatus

Enum InstallStatus 

Source
#[non_exhaustive]
pub enum InstallStatus { Absent, InstalledOwned { owner: String, }, InstalledOtherOwner { owner: String, }, PresentUnowned, LedgerOnly { owner: String, }, Drifted { issues: Vec<DriftIssue>, }, Unknown, }
Expand description

High-level installation state.

Each variant maps to a single concrete combination of (harness-config presence, agent-config ledger ownership). Callers can match on this directly to choose between install, repair, or skip.

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.
§

Absent

Not present in either the harness config or the ownership ledger.

§

InstalledOwned

Recorded under the caller’s owner tag and present in the harness config.

Fields

§owner: String

Owner tag recorded in the ledger. Equals the caller’s expected owner.

§

InstalledOtherOwner

Recorded under a different owner. The caller cannot uninstall this without forcing a steal; new installs must use a different name.

Fields

§owner: String

Owner tag recorded in the ledger.

§

PresentUnowned

Present in the harness config but no ledger entry claims it. Likely hand-installed by the user or installed by a tool that does not participate in the agent-config ownership protocol.

§

LedgerOnly

Recorded in the ledger but missing from the harness config. The most common cause is that the user (or another tool) deleted the entry directly without going through uninstall.

Fields

§owner: String

Owner tag recorded in the ledger.

§

Drifted

On-disk state is structurally inconsistent in a way that does not fit the other variants — duplicate entries, an unparseable config, an incomplete skill directory, etc. Callers should typically treat this as “needs manual repair before install”.

Fields

§issues: Vec<DriftIssue>

One or more concrete drift reasons.

§

Unknown

State could not be determined (e.g., a probe encountered a soft I/O failure). Reserved for non-fatal cases. Hard errors propagate as AgentConfigError instead.

Trait Implementations§

Source§

impl Clone for InstallStatus

Source§

fn clone(&self) -> InstallStatus

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for InstallStatus

Source§

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

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

impl PartialEq for InstallStatus

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · 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 InstallStatus

Source§

impl StructuralPartialEq for InstallStatus

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.