Skip to main content

CacheRoot

Struct CacheRoot 

Source
pub struct CacheRoot { /* private fields */ }
Expand description

Represents a discovered or explicit cache root directory.

Use CacheRoot::from_discovery() to find the nearest crate root from the current working directory and anchor caches under .cache, or CacheRoot::from_root(...) to construct one from an explicit path.

Implementations§

Source§

impl CacheRoot

Source

pub fn from_discovery() -> Result<Self>

Discover the cache root by searching parent directories for Cargo.toml.

The discovered cache root is always <crate-root-or-cwd>/.cache.

Note: from_discovery only uses the configured CACHE_DIR_NAME (by default .cache) as the discovered cache directory. It does not detect or prefer other custom directory names (for example .cache-v2). To use a non-standard cache root name use CacheRoot::from_root(...) with an explicit path.

Falls back to the current working directory when no crate root is found.

Source

pub fn from_root<P: Into<PathBuf>>(root: P) -> Self

Create a CacheRoot from an explicit filesystem path.

Source

pub fn path(&self) -> &Path

Return the underlying path for this CacheRoot.

Source

pub fn group<P: AsRef<Path>>(&self, relative_group: P) -> CacheGroup

Build a CacheGroup for a relative subdirectory under this root.

Source

pub fn group_path<P: AsRef<Path>>(&self, relative_group: P) -> PathBuf

Resolve a relative group path to an absolute PathBuf under this root.

Source

pub fn ensure_group<P: AsRef<Path>>(&self, relative_group: P) -> Result<PathBuf>

Ensure the given group directory exists, creating parents as required.

Source

pub fn ensure_group_with_policy<P: AsRef<Path>>( &self, relative_group: P, policy: Option<&EvictPolicy>, ) -> Result<PathBuf>

Ensure the given group exists and optionally apply an eviction policy.

When policy is Some, files will be evaluated and removed according to the EvictPolicy rules. Passing None performs only directory creation.

Source

pub fn cache_path<P: AsRef<Path>, Q: AsRef<Path>>( &self, cache_dir: P, relative_path: Q, ) -> PathBuf

Resolve a cache entry path given a cache directory (relative to the root) and a relative entry path. Absolute relative_path values are returned unchanged.

Trait Implementations§

Source§

impl Clone for CacheRoot

Source§

fn clone(&self) -> CacheRoot

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 CacheRoot

Source§

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

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

impl PartialEq for CacheRoot

Source§

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

Source§

impl StructuralPartialEq for CacheRoot

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