pub struct ContentManager { /* private fields */ }Expand description
Content storage manager with LRU-cached metadata.
Implementations§
Source§impl ContentManager
impl ContentManager
Sourcepub fn new(storage_path: PathBuf) -> Self
pub fn new(storage_path: PathBuf) -> Self
Create a new content manager with default cache capacity (1000 entries).
Sourcepub fn with_capacity(storage_path: PathBuf, capacity: usize) -> Self
pub fn with_capacity(storage_path: PathBuf, capacity: usize) -> Self
Create a new content manager with specified cache capacity.
Sourcepub fn storage_path(&self) -> &Path
pub fn storage_path(&self) -> &Path
Get the storage path.
Sourcepub fn cache_metadata(&mut self, cid: String, metadata: ContentMetadata)
pub fn cache_metadata(&mut self, cid: String, metadata: ContentMetadata)
Cache content metadata.
Sourcepub fn get_metadata(&mut self, cid: &str) -> Option<&ContentMetadata>
pub fn get_metadata(&mut self, cid: &str) -> Option<&ContentMetadata>
Get cached metadata.
Sourcepub fn peek_metadata(&self, cid: &str) -> Option<&ContentMetadata>
pub fn peek_metadata(&self, cid: &str) -> Option<&ContentMetadata>
Get cached metadata without updating statistics (immutable).
Sourcepub fn remove_metadata(&mut self, cid: &str) -> Option<ContentMetadata>
pub fn remove_metadata(&mut self, cid: &str) -> Option<ContentMetadata>
Remove metadata from cache.
Sourcepub fn clear_cache(&mut self)
pub fn clear_cache(&mut self)
Clear all cached metadata.
Sourcepub fn cached_count(&self) -> usize
pub fn cached_count(&self) -> usize
Get the number of cached items.
Sourcepub fn total_storage_used(&self) -> u64
pub fn total_storage_used(&self) -> u64
Calculate total storage used by all cached content.
Sourcepub fn stats(&self) -> &ContentManagerStats
pub fn stats(&self) -> &ContentManagerStats
Get statistics.
Sourcepub fn reset_stats(&mut self)
pub fn reset_stats(&mut self)
Reset statistics.
Sourcepub fn search_by_category(
&mut self,
category: ContentCategory,
) -> Vec<&ContentMetadata>
pub fn search_by_category( &mut self, category: ContentCategory, ) -> Vec<&ContentMetadata>
Search content by category.
Sourcepub fn search_by_tag(&mut self, tag: &str) -> Vec<&ContentMetadata>
pub fn search_by_tag(&mut self, tag: &str) -> Vec<&ContentMetadata>
Search content by tag.
Sourcepub fn search_by_text(&mut self, query: &str) -> Vec<&ContentMetadata>
pub fn search_by_text(&mut self, query: &str) -> Vec<&ContentMetadata>
Search content by text (title or description).
Sourcepub fn get_largest_content(&self, limit: usize) -> Vec<&ContentMetadata>
pub fn get_largest_content(&self, limit: usize) -> Vec<&ContentMetadata>
Get all cached content sorted by size (descending).
Sourcepub fn get_newest_content(&self, limit: usize) -> Vec<&ContentMetadata>
pub fn get_newest_content(&self, limit: usize) -> Vec<&ContentMetadata>
Get all cached content sorted by creation time (newest first).
Sourcepub fn has_metadata(&self, cid: &str) -> bool
pub fn has_metadata(&self, cid: &str) -> bool
Check if content exists in cache.
Sourcepub fn get_multiple(&mut self, cids: &[String]) -> Vec<String>
pub fn get_multiple(&mut self, cids: &[String]) -> Vec<String>
Get multiple content metadata by CIDs.
Note: This method updates access statistics for each lookup.
Sourcepub fn cache_batch(&mut self, items: Vec<(String, ContentMetadata)>)
pub fn cache_batch(&mut self, items: Vec<(String, ContentMetadata)>)
Batch cache multiple metadata entries.
More efficient than calling cache_metadata repeatedly.
Sourcepub fn remove_batch(&mut self, cids: &[String]) -> usize
pub fn remove_batch(&mut self, cids: &[String]) -> usize
Batch remove multiple metadata entries.
Returns the number of items actually removed.
Sourcepub fn search_filtered(
&mut self,
category: Option<ContentCategory>,
tag: Option<&str>,
min_size: Option<u64>,
max_size: Option<u64>,
) -> Vec<&ContentMetadata>
pub fn search_filtered( &mut self, category: Option<ContentCategory>, tag: Option<&str>, min_size: Option<u64>, max_size: Option<u64>, ) -> Vec<&ContentMetadata>
Search with multiple filters combined.
Returns content that matches ALL specified criteria.
Sourcepub fn search_by_price_range(
&mut self,
min_price: u64,
max_price: u64,
) -> Vec<&ContentMetadata>
pub fn search_by_price_range( &mut self, min_price: u64, max_price: u64, ) -> Vec<&ContentMetadata>
Get content by price range.
Sourcepub fn search_by_size_range(
&mut self,
min_bytes: u64,
max_bytes: u64,
) -> Vec<&ContentMetadata>
pub fn search_by_size_range( &mut self, min_bytes: u64, max_bytes: u64, ) -> Vec<&ContentMetadata>
Get content by size range.
Sourcepub fn get_all_cids(&self) -> Vec<String>
pub fn get_all_cids(&self) -> Vec<String>
Get all content CIDs currently cached.
Sourcepub fn count_by_category(&self, category: ContentCategory) -> usize
pub fn count_by_category(&self, category: ContentCategory) -> usize
Get count of content by category.
Sourcepub fn total_content_size(&self) -> u64
pub fn total_content_size(&self) -> u64
Get total size of all cached content.
Sourcepub fn average_content_size(&self) -> u64
pub fn average_content_size(&self) -> u64
Get average content size.
Trait Implementations§
Source§impl Debug for ContentManager
impl Debug for ContentManager
Auto Trait Implementations§
impl Freeze for ContentManager
impl RefUnwindSafe for ContentManager
impl Send for ContentManager
impl Sync for ContentManager
impl Unpin for ContentManager
impl UnwindSafe for ContentManager
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> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.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> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.