pub struct DownloaderBuilder { /* private fields */ }
Expand description
A builder to create Downloader
with custom configuration.
See custom configuration for an example.
Implementations§
Source§impl DownloaderBuilder
impl DownloaderBuilder
Sourcepub fn build(self) -> Result<Downloader, Error>
pub fn build(self) -> Result<Downloader, Error>
Creates Downloader
using configuration of this DownloaderBuilder
.
See custom configuration for an example.
Sourcepub fn interval(self, min: f32, max: f32) -> Self
pub fn interval(self, min: f32, max: f32) -> Self
Sets interval between successful downloads in seconds, default is 0.
A random interval between given min
and max
is generated
for each download. If elapsed time since previous download started
is less than this interval then RequestBuilder::send
will sleep
for the remaining duration before starting download.
§Panics
If min > max
.
§Examples
Configure 1.0 - 1.1
seconds interval between successful downloads.
use ml_downloader::Downloader;
let mut downloader = Downloader::builder()
.interval(1.0, 1.1)
.build()?;
Sourcepub fn new() -> Self
pub fn new() -> Self
Creates DownloaderBuilder
to configure Downloader
.
This is same as Downloader::builder
.
Sourcepub fn reqwest<F>(self, f: F) -> Self
pub fn reqwest<F>(self, f: F) -> Self
Configures underlying ClientBuilder
.
§Examples
use ml_downloader::Downloader;
let mut downloader = Downloader::builder()
.reqwest(|cb| cb.user_agent("foobar/1.0"))
.build()?;
Sourcepub fn retry_delays(self, retry_delays: &[(f32, f32)]) -> Self
pub fn retry_delays(self, retry_delays: &[(f32, f32)]) -> Self
Sets retry delays in seconds, default is none.
Each item is a pair of min
and max
delays
and the number of items defines the number of retries.
A random delay between given min
and max
is generated for each retry.
§Panics
If any item has min > max
.
§Examples
Configure two retries after failed download with
2.0 - 2.2
seconds delay after initial failure and
5.0 - 5.5
seconds delay after 2nd failure.
use ml_downloader::Downloader;
let mut downloader = Downloader::builder()
.retry_delays(&[(2.0, 2.2), (5.0, 5.5)])
.build()?;