in src/api/sync.rs [619:646]
fn download_from<P>(
&self,
url: &str,
current: u64,
size: usize,
file: &mut std::fs::File,
filename: &str,
progress: &mut P,
) -> Result<(), ApiError>
where
P: Progress,
{
let range = format!("bytes={current}-");
let response = self
.client
.get(url)
.header(RANGE, &range)
.call()
.map_err(Box::new)?;
let (_, body) = response.into_parts();
let reader = body.into_reader();
progress.init(size, filename);
progress.update(current as usize);
let mut reader = Box::new(wrap_read(reader, progress));
std::io::copy(&mut reader, file)?;
progress.finish();
Ok(())
}