pub struct CacheStorage { /* private fields */ }
Expand description
Manages the file system storage for cached crates and their documentation
Implementations§
Source§impl CacheStorage
impl CacheStorage
Sourcepub fn new(custom_cache_dir: Option<PathBuf>) -> Result<Self>
pub fn new(custom_cache_dir: Option<PathBuf>) -> Result<Self>
Create a new cache storage instance
Sourcepub fn crate_path(&self, name: &str, version: &str) -> Result<PathBuf>
pub fn crate_path(&self, name: &str, version: &str) -> Result<PathBuf>
Get the path for a specific crate version
Sourcepub fn crate_path_for_id(&self, crate_id: &CrateIdentifier) -> PathBuf
pub fn crate_path_for_id(&self, crate_id: &CrateIdentifier) -> PathBuf
Get the path for a specific crate using CrateIdentifier
Sourcepub fn member_path(
&self,
name: &str,
version: &str,
member_name: &str,
) -> Result<PathBuf>
pub fn member_path( &self, name: &str, version: &str, member_name: &str, ) -> Result<PathBuf>
Get the path for a specific workspace member
Sourcepub fn source_path(&self, name: &str, version: &str) -> Result<PathBuf>
pub fn source_path(&self, name: &str, version: &str) -> Result<PathBuf>
Get the source directory path for a crate
Sourcepub fn docs_path(
&self,
name: &str,
version: &str,
member_name: Option<&str>,
) -> Result<PathBuf>
pub fn docs_path( &self, name: &str, version: &str, member_name: Option<&str>, ) -> Result<PathBuf>
Get the documentation JSON path for a crate or workspace member
Sourcepub fn metadata_path(
&self,
name: &str,
version: &str,
member_name: Option<&str>,
) -> Result<PathBuf>
pub fn metadata_path( &self, name: &str, version: &str, member_name: Option<&str>, ) -> Result<PathBuf>
Get the metadata path for a crate or workspace member
Sourcepub fn dependencies_path(
&self,
name: &str,
version: &str,
member_name: Option<&str>,
) -> Result<PathBuf>
pub fn dependencies_path( &self, name: &str, version: &str, member_name: Option<&str>, ) -> Result<PathBuf>
Get the dependencies path for a crate or workspace member
Sourcepub fn search_index_path(
&self,
name: &str,
version: &str,
member_name: Option<&str>,
) -> Result<PathBuf>
pub fn search_index_path( &self, name: &str, version: &str, member_name: Option<&str>, ) -> Result<PathBuf>
Get the search index path for a crate or workspace member
Sourcepub fn is_member_cached(
&self,
name: &str,
version: &str,
member_path: &str,
) -> bool
pub fn is_member_cached( &self, name: &str, version: &str, member_path: &str, ) -> bool
Check if a workspace member is cached
Accepts full member paths (e.g., “crates/rmcp”) which are normalized internally
Sourcepub fn has_docs(
&self,
name: &str,
version: &str,
member_name: Option<&str>,
) -> bool
pub fn has_docs( &self, name: &str, version: &str, member_name: Option<&str>, ) -> bool
Check if documentation is generated for a crate or workspace member
Sourcepub fn has_search_index(
&self,
name: &str,
version: &str,
member_name: Option<&str>,
) -> bool
pub fn has_search_index( &self, name: &str, version: &str, member_name: Option<&str>, ) -> bool
Check if a search index exists for a crate or workspace member
Sourcepub fn ensure_dir(&self, path: &Path) -> Result<()>
pub fn ensure_dir(&self, path: &Path) -> Result<()>
Ensure a directory exists
Sourcepub fn calculate_dir_size(&self, path: &Path) -> Result<u64>
pub fn calculate_dir_size(&self, path: &Path) -> Result<u64>
Calculate the total size of a directory in bytes
Sourcepub fn save_metadata_with_source(
&self,
name: &str,
version: &str,
source: &str,
source_path: Option<&str>,
member_info: Option<MemberInfo>,
) -> Result<()>
pub fn save_metadata_with_source( &self, name: &str, version: &str, source: &str, source_path: Option<&str>, member_info: Option<MemberInfo>, ) -> Result<()>
Save metadata for a crate with source information
Sourcepub fn load_metadata(
&self,
name: &str,
version: &str,
member_name: Option<&str>,
) -> Result<CacheMetadata>
pub fn load_metadata( &self, name: &str, version: &str, member_name: Option<&str>, ) -> Result<CacheMetadata>
Load metadata for a crate or workspace member
Sourcepub fn list_cached_crates(&self) -> Result<Vec<CacheMetadata>>
pub fn list_cached_crates(&self) -> Result<Vec<CacheMetadata>>
Get all cached crate versions
Sourcepub fn list_workspace_members(
&self,
name: &str,
version: &str,
) -> Result<Vec<String>>
pub fn list_workspace_members( &self, name: &str, version: &str, ) -> Result<Vec<String>>
Get all workspace members for a cached crate
Sourcepub fn remove_crate(&self, name: &str, version: &str) -> Result<()>
pub fn remove_crate(&self, name: &str, version: &str) -> Result<()>
Remove a cached crate version
Sourcepub fn backup_crate_to_temp(&self, name: &str, version: &str) -> Result<PathBuf>
pub fn backup_crate_to_temp(&self, name: &str, version: &str) -> Result<PathBuf>
Copy a crate to a temporary backup location
Sourcepub fn restore_crate_from_backup(
&self,
name: &str,
version: &str,
backup_path: &Path,
) -> Result<()>
pub fn restore_crate_from_backup( &self, name: &str, version: &str, backup_path: &Path, ) -> Result<()>
Restore a crate from temporary backup
Sourcepub fn cleanup_backup(&self, backup_path: &Path) -> Result<()>
pub fn cleanup_backup(&self, backup_path: &Path) -> Result<()>
Clean up temporary backup
Trait Implementations§
Source§impl Clone for CacheStorage
impl Clone for CacheStorage
Source§fn clone(&self) -> CacheStorage
fn clone(&self) -> CacheStorage
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreAuto Trait Implementations§
impl Freeze for CacheStorage
impl RefUnwindSafe for CacheStorage
impl Send for CacheStorage
impl Sync for CacheStorage
impl Unpin for CacheStorage
impl UnwindSafe for CacheStorage
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Cast for T
impl<T> Cast for T
Source§fn cast<U>(self, interner: <U as HasInterner>::Interner) -> Uwhere
Self: CastTo<U>,
U: HasInterner,
fn cast<U>(self, interner: <U as HasInterner>::Interner) -> Uwhere
Self: CastTo<U>,
U: HasInterner,
U
using CastTo
.Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
, which can then be
downcast
into Box<dyn ConcreteType>
where ConcreteType
implements Trait
.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
, which can then be further
downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moreSource§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self
with the foreground set to
value
.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red()
and
green()
, which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg()
:
use yansi::{Paint, Color};
painted.fg(Color::White);
Set foreground color to white using white()
.
use yansi::Paint;
painted.white();
Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self
with the background set to
value
.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red()
and
on_green()
, which have the same functionality but
are pithier.
§Example
Set background color to red using fg()
:
use yansi::{Paint, Color};
painted.bg(Color::Red);
Set background color to red using on_red()
.
use yansi::Paint;
painted.on_red();
Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute
value
.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold()
and
underline()
, which have the same functionality
but are pithier.
§Example
Make text bold using attr()
:
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);
Make text bold using using bold()
.
use yansi::Paint;
painted.bold();
Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi
Quirk
value
.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask()
and
wrap()
, which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk()
:
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);
Enable wrapping using wrap()
.
use yansi::Paint;
painted.wrap();
Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition
value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted
only when both stdout
and stderr
are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);