diff options
| author | 2026-01-14 04:51:46 +0000 | |
|---|---|---|
| committer | 2026-01-14 04:51:46 +0000 | |
| commit | 11a604f7e03d1a6f1b4ad381fdcf0ccaef440cff (patch) | |
| tree | 6e7a0ca5cc0b978ba375562e0163d4665c0b982a /src-tauri/src/main.rs | |
| parent | cd82fabfac3120179f947fba331025676dc1af7f (diff) | |
| download | DropOut-11a604f7e03d1a6f1b4ad381fdcf0ccaef440cff.tar.gz DropOut-11a604f7e03d1a6f1b4ad381fdcf0ccaef440cff.zip | |
refactor: simplify get_installed_versions function by using iterator methods
Diffstat (limited to 'src-tauri/src/main.rs')
| -rw-r--r-- | src-tauri/src/main.rs | 34 |
1 files changed, 14 insertions, 20 deletions
diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index bf7504d..c1b882c 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -595,29 +595,23 @@ async fn get_installed_versions(app_handle: tauri::AppHandle) -> Result<Vec<Stri let versions_dir = game_dir.join("versions"); - if !versions_dir.exists() { + let Ok(entries) = std::fs::read_dir(versions_dir) else { return Ok(Vec::new()); - } - - let mut installed_versions = Vec::new(); + }; - if let Ok(entries) = std::fs::read_dir(versions_dir) { - for entry in entries { - if let Ok(entry) = entry { - if let Ok(file_type) = entry.file_type() { - if file_type.is_dir() { - if let Ok(file_name) = entry.file_name().into_string() { - // Optionally verify if {version_id}.json exists inside - let json_path = entry.path().join(format!("{}.json", file_name)); - if json_path.exists() { - installed_versions.push(file_name); - } - } - } - } + let installed_versions = entries + .flatten() + .filter(|entry| entry.file_type().map(|ft| ft.is_dir()).unwrap_or(false)) + .filter_map(|entry| { + let file_name = entry.file_name().into_string().ok()?; + let json_path = entry.path().join(format!("{}.json", file_name)); + if json_path.exists() { + Some(file_name) + } else { + None } - } - } + }) + .collect(); Ok(installed_versions) } |