INNER CODE UNIT · Rust
Some
HemantKArya/BloomeeTunes · rust/src/api/downloader/mod.rs:472
if let Some(task) = self.get_task(task_id) {
if let Ok(mut g) = task.lock() {
let total = update.total_bytes;
let bytes = update.bytes_downloaded;
g.persisted.state = update.state.clone();
g.persisted.bytes_downloaded = bytes;
g.persisted.total_bytes = total;
g.persisted.progress = total
.filter(|&t| t > 0)
.map(|t| (bytes as f64 / t as f64).clamp(0.0, 1.0))
.unwrap_or_else(|| match update.state {
DownloadTaskState::CompletedPendingAck => 1.0,
_ => 0.0,
});
g.persisted.message = Some(update.message.clone());
if let Some(w) = &update.warning {
g.persisted.last_error = Some(w.clone());
}