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 delay(self, min: f32, max: f32) -> Self
pub fn delay(self, min: f32, max: f32) -> Self
Sets delay between successful downloads in seconds, default is 0.
A random delay between given min and max is generated
for each download. If elapsed time since previous download ended
is less than this delay then RequestBuilder::send will sleep
for the remaining duration before starting download.
See also DownloaderBuilder::interval.
§Panics
If min > max.
§Examples
Configure 1.0 - 1.1 seconds delay between successful downloads.
use ml_downloader::Downloader;
let mut downloader = Downloader::builder()
.delay(1.0, 1.1)
.build()?;
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.
See also DownloaderBuilder::delay.
§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()?;