Skip to main content

ModelManagementStore

Struct ModelManagementStore 

Source
pub struct ModelManagementStore { /* private fields */ }

Implementations§

Source§

impl ModelManagementStore

Source

pub fn new(state_root: PathBuf, models_dir: PathBuf) -> Self

Source

pub fn models_dir(&self) -> &Path

Source

pub fn management_state_dir(&self) -> &Path

Source

pub fn receipts_root(&self) -> &Path

Source

pub fn receipt_path(&self, model_id: &str) -> PathBuf

Source

pub fn tombstones_root(&self) -> &Path

Source

pub fn tombstone_path(&self, model_id: &str) -> PathBuf

Source

pub fn leases_root(&self) -> &Path

Source

pub fn lease_path(&self, model_id: &str) -> PathBuf

Source

pub fn mutation_lock_path(&self, model_id: &str) -> PathBuf

Source

pub fn load_receipt( &self, model_id: &str, ) -> Result<Option<InstallReceipt>, ModelManagementError>

Source

pub fn can_remove(&self, model_id: &str) -> Result<bool, ModelManagementError>

Return whether CAR has a receipt whose current artifact still matches the ownership evidence recorded at install/adoption time.

Source

pub fn acquire_lease( &self, model_id: &str, ) -> Result<ModelLease, ModelManagementError>

Source

pub fn start_usage_tracking(&self)

Mark when usage tracking began on this machine, once. Until a model has gone unstamped for longer than an idle threshold since this moment, its silence is no evidence: the day stamping ships, every model is unstamped.

The daemon calls this at startup, and nothing else may: the process that serves the models is the one whose leases stamp them. A newer CLI or test starting the clock while an older daemon serves unstamped would make every model look idle a month later.

Source

pub fn beat(&self)

Record that a usage-stamping daemon is up now. The run continues from the previous beat when that beat was this process’s own and less than COVERAGE_GAP_SECS of awake time ago (a sleeping machine pauses the clock rather than breaking the run), or when another stamping process beat within that window of wall time (a restart). Otherwise a run starts now. Daemon only, like Self::start_usage_tracking.

Source

pub fn usage_covered_since(&self) -> Option<u64>

Since when a usage-stamping daemon has been continuously up, if one is.

Source

pub fn usage_tracking_since(&self) -> Option<u64>

When usage tracking began on this machine, if it has.

Source

pub fn last_used(&self, model_id: &str) -> Option<u64>

When model_id was last used, if it ever was since tracking began.

Source

pub fn model_in_use(&self, model_id: &str) -> Result<bool, ModelManagementError>

Source

pub fn car_enabled(&self, model_id: &str) -> Result<bool, ModelManagementError>

Source§

impl ModelManagementStore

Source

pub fn resume_retiring(&self) -> Vec<ModelManagementError>

Finish retirements whose model removal completed but whose tombstone was never cleared. An intent whose removal has not completed — the receipt is still there — is kept while a removal journal can still finish it, and dropped once nothing can.

Source

pub fn resume_detached_trees(&self) -> Vec<ModelManagementError>

Finish retirements a crash interrupted: a journaled quarantine still on disk is deleted (identity-checked); a journal whose rename never happened is dropped. Daemon start only.

Trait Implementations§

Source§

impl Clone for ModelManagementStore

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 Debug for ModelManagementStore

Source§

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

Formats the value using the given formatter. Read more

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

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

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more