Skip to main content

BtProgressManager

Struct BtProgressManager 

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

BT progress file manager

Manages BT download progress save, load, delete, and list operations. Supports atomic writes to ensure existing progress files are not corrupted in abnormal situations.

Implementations§

Source§

impl BtProgressManager

Source

pub fn new(progress_dir: &Path) -> Result<Self>

Create new BT progress manager

Automatically creates specified directory if it doesn’t exist.

§Arguments
  • progress_dir - Progress file storage directory path
§Errors

Returns error when unable to create directory

Source

pub fn get_progress_file_path(&self, info_hash: &[u8; 20]) -> PathBuf

Generate progress file path

Source

pub fn save_progress( &self, info_hash: &[u8; 20], progress: &BtProgress, ) -> Result<()>

Save BT download progress to file

Uses atomic write strategy: writes to temporary file first, then replaces original file via rename operation, ensuring existing progress files are not corrupted if exceptions occur during write process.

§Arguments
  • info_hash - Torrent info_hash (20 bytes)
  • progress - Progress data to save
§Errors

Returns error when file write fails

Source

pub fn load_progress(&self, info_hash: &[u8; 20]) -> Result<BtProgress>

Load BT download progress file

Automatically detects C++ binary format and text format, and parses correctly. Validates whether info_hash in file matches provided parameter.

§Arguments
  • info_hash - Expected info_hash (20 bytes) for validation
§Returns

Returns loaded progress data

§Errors
  • File doesn’t exist or read failure
  • File format invalid or corrupted
  • info_hash mismatch
Source

pub fn remove_progress(&self, info_hash: &[u8; 20]) -> Result<()>

Delete progress file for specified info_hash

§Arguments
  • info_hash - info_hash of torrent to delete (20 bytes)
§Errors

Returns error when file deletion fails

Source

pub fn list_saved_progresses(&self) -> Vec<[u8; 20]>

List all saved progress files

Scans all .aria2 files in progress directory, extracts their info_hash.

§Returns

Returns list of info_hash for all saved progress

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> 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> 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> Same for T

Source§

type Output = T

Should always be Self
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.
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