pub struct DownloadEngine { /* private fields */ }Expand description
The main download engine
Implementations§
Source§impl DownloadEngine
impl DownloadEngine
Sourcepub async fn new(config: EngineConfig) -> Result<Arc<Self>>
pub async fn new(config: EngineConfig) -> Result<Arc<Self>>
Create a new download engine with the given configuration
Sourcepub async fn add_http(
self: &Arc<Self>,
url: &str,
options: DownloadOptions,
) -> Result<DownloadId>
pub async fn add_http( self: &Arc<Self>, url: &str, options: DownloadOptions, ) -> Result<DownloadId>
Add an HTTP/HTTPS download
Sourcepub async fn add_torrent(
self: &Arc<Self>,
torrent_data: &[u8],
options: DownloadOptions,
) -> Result<DownloadId>
pub async fn add_torrent( self: &Arc<Self>, torrent_data: &[u8], options: DownloadOptions, ) -> Result<DownloadId>
Add a BitTorrent download from torrent file data
Sourcepub async fn add_magnet(
self: &Arc<Self>,
magnet_uri: &str,
options: DownloadOptions,
) -> Result<DownloadId>
pub async fn add_magnet( self: &Arc<Self>, magnet_uri: &str, options: DownloadOptions, ) -> Result<DownloadId>
Add a BitTorrent download from a magnet URI
Sourcepub async fn pause(&self, id: DownloadId) -> Result<()>
pub async fn pause(&self, id: DownloadId) -> Result<()>
Pause a download
Sourcepub async fn cancel(&self, id: DownloadId, delete_files: bool) -> Result<()>
pub async fn cancel(&self, id: DownloadId, delete_files: bool) -> Result<()>
Cancel a download and optionally delete files
Sourcepub fn status(&self, id: DownloadId) -> Option<DownloadStatus>
pub fn status(&self, id: DownloadId) -> Option<DownloadStatus>
Get the status of a download
Sourcepub fn list(&self) -> Vec<DownloadStatus>
pub fn list(&self) -> Vec<DownloadStatus>
List all downloads
Sourcepub fn active(&self) -> Vec<DownloadStatus>
pub fn active(&self) -> Vec<DownloadStatus>
Get active downloads
Sourcepub fn waiting(&self) -> Vec<DownloadStatus>
pub fn waiting(&self) -> Vec<DownloadStatus>
Get waiting/queued downloads
Sourcepub fn stopped(&self) -> Vec<DownloadStatus>
pub fn stopped(&self) -> Vec<DownloadStatus>
Get stopped downloads (paused, completed, error)
Sourcepub fn global_stats(&self) -> GlobalStats
pub fn global_stats(&self) -> GlobalStats
Get global statistics
Sourcepub fn subscribe(&self) -> Receiver<DownloadEvent>
pub fn subscribe(&self) -> Receiver<DownloadEvent>
Subscribe to download events
Sourcepub fn set_config(&self, config: EngineConfig) -> Result<()>
pub fn set_config(&self, config: EngineConfig) -> Result<()>
Update engine configuration
Sourcepub fn get_config(&self) -> EngineConfig
pub fn get_config(&self) -> EngineConfig
Get current configuration
Sourcepub fn set_priority(
&self,
id: DownloadId,
priority: DownloadPriority,
) -> Result<()>
pub fn set_priority( &self, id: DownloadId, priority: DownloadPriority, ) -> Result<()>
Set the priority of a download
This affects the order in which downloads acquire slots when queued. If the download is already active, the priority is updated but won’t affect scheduling until the download is paused and resumed.
The priority change is persisted to storage immediately (non-blocking).
Sourcepub fn get_priority(&self, id: DownloadId) -> Option<DownloadPriority>
pub fn get_priority(&self, id: DownloadId) -> Option<DownloadPriority>
Get the current priority of a download
Sourcepub fn get_bandwidth_limits(&self) -> BandwidthLimits
pub fn get_bandwidth_limits(&self) -> BandwidthLimits
Get current bandwidth limits (accounting for schedule rules)
Sourcepub fn set_schedule_rules(&self, rules: Vec<ScheduleRule>)
pub fn set_schedule_rules(&self, rules: Vec<ScheduleRule>)
Update the bandwidth schedule rules
The new rules take effect immediately after evaluation.
Sourcepub fn get_schedule_rules(&self) -> Vec<ScheduleRule>
pub fn get_schedule_rules(&self) -> Vec<ScheduleRule>
Get the current schedule rules
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for DownloadEngine
impl !RefUnwindSafe for DownloadEngine
impl Send for DownloadEngine
impl Sync for DownloadEngine
impl Unpin for DownloadEngine
impl !UnwindSafe for DownloadEngine
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> 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.