INNER CODE UNIT · Rust
resume_task
HemantKArya/BloomeeTunes · rust/src/api/downloader/mod.rs:284
pub async fn resume_task(&self, task_id: String) -> bool {
let Some(task) = self.get_task(&task_id) else { return false };
let should_spawn = {
let mut g = match task.lock() {
Ok(g) => g,
Err(_) => return false,
};
let resumable = matches!(
g.persisted.state,
DownloadTaskState::Paused | DownloadTaskState::Failed | DownloadTaskState::Queued
);
if resumable {
g.pause_requested.store(false, Ordering::Release);
g.cancel_requested.store(false, Ordering::Release);
g.delete_partial_on_cancel.store(false, Ordering::Release);
g.persisted.state = DownloadTaskState::Queued;
g.persisted.message = Some("Queued".to_string());