pub struct AnnounceCache { /* private fields */ }Expand description
Announce cache backed by filesystem.
Implementations§
Source§impl AnnounceCache
impl AnnounceCache
Sourcepub fn new(base_path: PathBuf) -> Self
pub fn new(base_path: PathBuf) -> Self
Create an announce cache at the given directory.
The directory must already exist (created by ensure_storage_dirs).
Sourcepub fn store(
&self,
packet_hash: &[u8; 32],
raw: &[u8],
interface_name: Option<&str>,
) -> Result<()>
pub fn store( &self, packet_hash: &[u8; 32], raw: &[u8], interface_name: Option<&str>, ) -> Result<()>
Store a cached announce to disk.
packet_hash: 32-byte packet hash (used as filename)
raw: raw announce bytes (pre-hop-increment)
interface_name: optional interface name string
Sourcepub fn get(
&self,
packet_hash: &[u8; 32],
) -> Result<Option<(Vec<u8>, Option<String>)>>
pub fn get( &self, packet_hash: &[u8; 32], ) -> Result<Option<(Vec<u8>, Option<String>)>>
Retrieve a cached announce from disk.
Returns (raw_bytes, interface_name_or_none).
Sourcepub fn clean(
&self,
active_hashes: &[[u8; 32]],
batch_limit: usize,
) -> Result<(usize, bool)>
pub fn clean( &self, active_hashes: &[[u8; 32]], batch_limit: usize, ) -> Result<(usize, bool)>
Remove cached announces whose packet hashes are not in the active set.
active_hashes: set of packet hashes that should be kept.
batch_limit: maximum number of files to process per call (0 = unlimited).
Returns (removed_count, finished) where finished is true if all files
were processed (no more work to do).
Sourcepub fn clean_batch(
&self,
active_hashes: &[[u8; 32]],
entries: &mut ReadDir,
batch_limit: usize,
) -> Result<(usize, bool)>
pub fn clean_batch( &self, active_hashes: &[[u8; 32]], entries: &mut ReadDir, batch_limit: usize, ) -> Result<(usize, bool)>
Incrementally remove stale cached announces from an existing directory iterator.
entries keeps iteration state across calls, allowing batched cleanup to
make forward progress through large directories.
Auto Trait Implementations§
impl Freeze for AnnounceCache
impl RefUnwindSafe for AnnounceCache
impl Send for AnnounceCache
impl Sync for AnnounceCache
impl Unpin for AnnounceCache
impl UnsafeUnpin for AnnounceCache
impl UnwindSafe for AnnounceCache
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> InterfaceConfigData for Twhere
T: Send + 'static,
impl<T> InterfaceConfigData for Twhere
T: Send + 'static,
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 more