ml-downloader 0.1.0

Simple blocking downloader based on reqwest
Documentation
## ml-downloader

Simple blocking downloader, featuring:

- retries with custom delays
- custom interval between successful downloads for rate limiting
- hash check (optional)
- based on [reqwest]https://crates.io/crates/reqwest

## Examples

### Simple usage

Create [`Downloader`] with default configuration and then download one file.

```no_run
use ml_downloader::Downloader;

let mut downloader = Downloader::new()?;
let bytes = downloader.get("https://example.com/").send()?;
# Ok::<(), ml_downloader::Error>(())
```

### Custom configuration

Create [`Downloader`] with
- `"foobar/1.0"` as `USER_AGENT`
- `1.0 - 1.1` seconds interval between successful downloads
- two retries after failed download
    - `2.0 - 2.2` seconds delay after initial failure
    - `5.0 - 5.5` seconds delay after 2nd failure

```rust
use ml_downloader::Downloader;

let mut downloader = Downloader::builder()
    .reqwest(|cb| cb.user_agent("foobar/1.0"))
    .interval(1.0, 1.1)
    .retry_delays(&[(2.0, 2.2), (5.0, 5.5)])
    .build()?;

# Ok::<(), ml_downloader::Error>(())
```

[`Downloader`]: https://docs.rs/ml-downloader/0.1.0/ml_downloader/struct.Downloader.html