diff --git a/src-tauri/src/games/downloads/download_agent.rs b/src-tauri/src/games/downloads/download_agent.rs index fbe1117..275bac2 100644 --- a/src-tauri/src/games/downloads/download_agent.rs +++ b/src-tauri/src/games/downloads/download_agent.rs @@ -36,7 +36,7 @@ pub struct GameDownloadAgent { pub version: String, pub control_flag: DownloadThreadControl, contexts: Mutex>, - completed_contexts: Mutex>, + completed_contexts: Mutex>, pub manifest: Mutex>, pub progress: Arc, sender: Sender, @@ -260,7 +260,7 @@ impl GameDownloadAgent { let progress_handle = ProgressHandle::new(progress, self.progress.clone()); // If we've done this one already, skip it - if self.completed_contexts.lock().unwrap().contains(&index) { + if self.completed_contexts.lock().unwrap().contains(&context.checksum) { progress_handle.skip(context.length); continue; } @@ -299,7 +299,7 @@ impl GameDownloadAgent { "Finished context #{} with checksum {}", index, context.checksum ); - completed_indexes.push(index); + completed_indexes.push(context.checksum.clone()); } Ok(false) => { debug!( @@ -321,7 +321,7 @@ impl GameDownloadAgent { let completed_lock_len = { let mut completed_contexts_lock = self.completed_contexts.lock().unwrap(); for (_, item) in newly_completed.iter() { - completed_contexts_lock.push_front(*item); + completed_contexts_lock.push_front(item.clone()); } completed_contexts_lock.len() diff --git a/src-tauri/src/games/downloads/drop_data.rs b/src-tauri/src/games/downloads/drop_data.rs index fa3d00d..5c0844f 100644 --- a/src-tauri/src/games/downloads/drop_data.rs +++ b/src-tauri/src/games/downloads/drop_data.rs @@ -2,12 +2,12 @@ use std::{fs::File, io::{Read, Write}, path::PathBuf}; use log::{error, warn}; use native_model::{Decode, Encode}; -use serde_binary::binary_stream::Endian; pub type DropData = v1::DropData; static DROP_DATA_PATH: &str = ".dropdata"; + pub mod v1 { use std::{path::PathBuf, sync::Mutex}; @@ -19,7 +19,7 @@ pub mod v1 { pub struct DropData { game_id: String, game_version: String, - pub completed_contexts: Mutex>, + pub completed_contexts: Mutex>, pub base_path: PathBuf, } @@ -78,10 +78,10 @@ impl DropData { Err(e) => error!("{}", e), }; } - pub fn set_completed_contexts(&self, completed_contexts: &[usize]) { + pub fn set_completed_contexts(&self, completed_contexts: &[String]) { *self.completed_contexts.lock().unwrap() = completed_contexts.to_owned(); } - pub fn get_completed_contexts(&self) -> Vec { + pub fn get_completed_contexts(&self) -> Vec { self.completed_contexts.lock().unwrap().clone() } }