Skip to content

Commit 6646416

Browse files
committed
refactor: streamline code formatting and improve readability across multiple files
1 parent f83bb90 commit 6646416

8 files changed

Lines changed: 451 additions & 139 deletions

File tree

src-tauri/src/analysis/analyzer.rs

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1478,17 +1478,12 @@ mod tests {
14781478
#[test]
14791479
fn test_get_effective_path_uses_first_nested_archive_when_internal_root_cleared() {
14801480
let analyzer = Analyzer::new();
1481-
let mut item = create_detected_item(
1482-
AddonType::LuaScript,
1483-
"/tmp/outer.rar",
1484-
"modules",
1485-
None,
1486-
);
1481+
let mut item =
1482+
create_detected_item(AddonType::LuaScript, "/tmp/outer.rar", "modules", None);
14871483
item.extraction_chain = Some(ExtractionChain {
14881484
archives: vec![NestedArchiveInfo {
1489-
internal_path:
1490-
"ToLissA339_V1p1p0/plugins/MangoStudios A330/data/modules.zip"
1491-
.to_string(),
1485+
internal_path: "ToLissA339_V1p1p0/plugins/MangoStudios A330/data/modules.zip"
1486+
.to_string(),
14921487
password: None,
14931488
format: "zip".to_string(),
14941489
}],

src-tauri/src/management/gateway.rs

Lines changed: 88 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,8 @@ pub async fn gateway_check_updates(
319319
let xplane_root = validate_xplane_root(&xplane_path)?;
320320
let xplane_key = normalize_xplane_key(&xplane_root);
321321
let release_info = fetch_release_info(release_version.as_deref()).await;
322-
let release_scenery = std::sync::Arc::new(fetch_release_scenery_set(release_version.as_deref()).await);
322+
let release_scenery =
323+
std::sync::Arc::new(fetch_release_scenery_set(release_version.as_deref()).await);
323324
let installed = list_installed_internal(&db.get(), &xplane_root, &xplane_key).await?;
324325
if installed.is_empty() {
325326
return Ok(installed);
@@ -330,49 +331,52 @@ pub async fn gateway_check_updates(
330331
let release_info = release_info.clone();
331332
let release_scenery = release_scenery.clone();
332333
async move {
333-
match fetch_gateway_airport_payload(&installed.airport_icao).await {
334-
Ok(payload) => {
335-
let summary = parse_gateway_airport_summary(&payload, &installed.airport_icao);
336-
let detail = parse_gateway_airport_detail(&payload, &installed.airport_icao);
337-
let mut next = installed.clone();
338-
if let Some(summary) = summary {
339-
next.latest_scenery_id = summary.recommended_scenery_id;
340-
next.latest_artist = summary.recommended_artist;
341-
next.latest_approved_date = summary.recommended_accepted_at;
342-
next.update_available = summary
343-
.recommended_scenery_id
344-
.map(|latest| latest != next.scenery_id);
345-
if let Some(detail) = detail {
346-
let comparison = compute_release_comparison(
347-
&detail,
348-
release_scenery.as_ref().as_ref(),
349-
);
350-
apply_release_comparison_to_installed(
351-
&mut next,
352-
release_info.as_ref(),
353-
comparison.as_ref(),
354-
);
334+
match fetch_gateway_airport_payload(&installed.airport_icao).await {
335+
Ok(payload) => {
336+
let summary =
337+
parse_gateway_airport_summary(&payload, &installed.airport_icao);
338+
let detail =
339+
parse_gateway_airport_detail(&payload, &installed.airport_icao);
340+
let mut next = installed.clone();
341+
if let Some(summary) = summary {
342+
next.latest_scenery_id = summary.recommended_scenery_id;
343+
next.latest_artist = summary.recommended_artist;
344+
next.latest_approved_date = summary.recommended_accepted_at;
345+
next.update_available = summary
346+
.recommended_scenery_id
347+
.map(|latest| latest != next.scenery_id);
348+
if let Some(detail) = detail {
349+
let comparison = compute_release_comparison(
350+
&detail,
351+
release_scenery.as_ref().as_ref(),
352+
);
353+
apply_release_comparison_to_installed(
354+
&mut next,
355+
release_info.as_ref(),
356+
comparison.as_ref(),
357+
);
358+
}
359+
(next, true)
360+
} else {
361+
next.update_available = None;
362+
(next, false)
355363
}
356-
(next, true)
357-
} else {
364+
}
365+
Err(error) => {
366+
logger::log_error(
367+
&format!(
368+
"Failed to check Gateway updates for {}: {}",
369+
installed.airport_icao, error
370+
),
371+
Some("gateway"),
372+
);
373+
let mut next = installed.clone();
358374
next.update_available = None;
359375
(next, false)
360376
}
361377
}
362-
Err(error) => {
363-
logger::log_error(
364-
&format!(
365-
"Failed to check Gateway updates for {}: {}",
366-
installed.airport_icao, error
367-
),
368-
Some("gateway"),
369-
);
370-
let mut next = installed.clone();
371-
next.update_available = None;
372-
(next, false)
373-
}
374378
}
375-
}})
379+
})
376380
.buffer_unordered(UPDATE_CHECK_CONCURRENCY)
377381
.collect()
378382
.await;
@@ -392,7 +396,9 @@ pub async fn gateway_check_updates(
392396
}
393397

394398
#[tauri::command]
395-
pub async fn gateway_resolve_release_context(xplane_path: String) -> ApiResult<GatewayReleaseContext> {
399+
pub async fn gateway_resolve_release_context(
400+
xplane_path: String,
401+
) -> ApiResult<GatewayReleaseContext> {
396402
let xplane_root = validate_xplane_root(&xplane_path)?;
397403
resolve_release_context(&xplane_root).await
398404
}
@@ -444,7 +450,11 @@ async fn resolve_release_context(xplane_root: &Path) -> ApiResult<GatewayRelease
444450
}
445451

446452
async fn fetch_release_directory() -> Option<Vec<GatewayReleaseInfo>> {
447-
if let Some(cached) = RELEASE_DIRECTORY_CACHE.read().ok().and_then(|cache| cache.clone()) {
453+
if let Some(cached) = RELEASE_DIRECTORY_CACHE
454+
.read()
455+
.ok()
456+
.and_then(|cache| cache.clone())
457+
{
448458
if cached
449459
.fetched_at
450460
.elapsed()
@@ -468,7 +478,10 @@ async fn fetch_release_directory() -> Option<Vec<GatewayReleaseInfo>> {
468478

469479
let releases = parse_gateway_release_directory(&payload);
470480
if releases.is_empty() {
471-
logger::log_error("Gateway release directory returned no usable versions", Some("gateway"));
481+
logger::log_error(
482+
"Gateway release directory returned no usable versions",
483+
Some("gateway"),
484+
);
472485
return None;
473486
}
474487

@@ -485,7 +498,9 @@ async fn fetch_release_directory() -> Option<Vec<GatewayReleaseInfo>> {
485498
async fn fetch_release_info(version: Option<&str>) -> Option<GatewayReleaseInfo> {
486499
let version = version.map(str::trim).filter(|value| !value.is_empty())?;
487500
let releases = fetch_release_directory().await?;
488-
releases.into_iter().find(|release| release.version == version)
501+
releases
502+
.into_iter()
503+
.find(|release| release.version == version)
489504
}
490505

491506
async fn fetch_release_scenery_set(version: Option<&str>) -> Option<HashSet<i64>> {
@@ -506,20 +521,20 @@ async fn fetch_release_scenery_set(version: Option<&str>) -> Option<HashSet<i64>
506521
}
507522
}
508523

509-
let payload = match fetch_gateway_json(&format!("{}/release/{}", GATEWAY_API_BASE, version)).await
510-
{
511-
Ok(payload) => payload,
512-
Err(error) => {
513-
logger::log_error(
514-
&format!(
515-
"Failed to fetch Gateway release scenery packs for {}: {}",
516-
version, error
517-
),
518-
Some("gateway"),
519-
);
520-
return None;
521-
}
522-
};
524+
let payload =
525+
match fetch_gateway_json(&format!("{}/release/{}", GATEWAY_API_BASE, version)).await {
526+
Ok(payload) => payload,
527+
Err(error) => {
528+
logger::log_error(
529+
&format!(
530+
"Failed to fetch Gateway release scenery packs for {}: {}",
531+
version, error
532+
),
533+
Some("gateway"),
534+
);
535+
return None;
536+
}
537+
};
523538

524539
let scenery_packs = parse_release_scenery_set(&payload);
525540
if scenery_packs.is_empty() {
@@ -554,7 +569,9 @@ fn parse_gateway_release_directory(payload: &Value) -> Vec<GatewayReleaseInfo> {
554569
.iter()
555570
.filter_map(|entry| {
556571
let record = entry.as_object()?;
557-
let version = pick_string(record, &["Version", "version"])?.trim().to_string();
572+
let version = pick_string(record, &["Version", "version"])?
573+
.trim()
574+
.to_string();
558575
let date = pick_string(record, &["Date", "date"])?.trim().to_string();
559576
let parsed_version = parse_xplane_version_for_compare(&version)?;
560577
Some(GatewayReleaseInfo {
@@ -602,7 +619,9 @@ fn parse_xplane_version_for_compare(raw: &str) -> Option<Version> {
602619
}
603620

604621
fn normalize_xplane_version_token(raw: &str) -> Option<String> {
605-
let trimmed = raw.trim().trim_start_matches(|ch: char| ch == 'v' || ch == 'V');
622+
let trimmed = raw
623+
.trim()
624+
.trim_start_matches(|ch: char| ch == 'v' || ch == 'V');
606625
if trimmed.is_empty() {
607626
return None;
608627
}
@@ -783,12 +802,18 @@ fn read_windows_file_version(path: &Path) -> Option<String> {
783802
(0x0409, 0x04b0)
784803
};
785804

786-
let product_key = format!("\\StringFileInfo\\{:04x}{:04x}\\ProductVersion", lang, codepage);
805+
let product_key = format!(
806+
"\\StringFileInfo\\{:04x}{:04x}\\ProductVersion",
807+
lang, codepage
808+
);
787809
if let Some(version) = query_windows_version_string(&mut data, &product_key) {
788810
return Some(version);
789811
}
790812

791-
let file_key = format!("\\StringFileInfo\\{:04x}{:04x}\\FileVersion", lang, codepage);
813+
let file_key = format!(
814+
"\\StringFileInfo\\{:04x}{:04x}\\FileVersion",
815+
lang, codepage
816+
);
792817
if let Some(version) = query_windows_version_string(&mut data, &file_key) {
793818
return Some(version);
794819
}
@@ -825,7 +850,9 @@ unsafe fn query_windows_version_string(data: &mut [u8], key: &str) -> Option<Str
825850
.iter()
826851
.position(|value| *value == 0)
827852
.unwrap_or(value_slice.len());
828-
let value = String::from_utf16_lossy(&value_slice[..end]).trim().to_string();
853+
let value = String::from_utf16_lossy(&value_slice[..end])
854+
.trim()
855+
.to_string();
829856
(!value.is_empty()).then_some(value)
830857
}
831858

src-tauri/src/management/management_index.rs

Lines changed: 32 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1561,14 +1561,8 @@ pub async fn check_aircraft_updates(
15611561
None
15621562
} else {
15631563
let use_beta = beta_folders.contains(&a.folder_name);
1564-
resolve_update_check_url(
1565-
xplane_path,
1566-
"aircraft",
1567-
&a.folder_name,
1568-
url,
1569-
use_beta,
1570-
)
1571-
.map(|resolved_url| (idx, resolved_url))
1564+
resolve_update_check_url(xplane_path, "aircraft", &a.folder_name, url, use_beta)
1565+
.map(|resolved_url| (idx, resolved_url))
15721566
}
15731567
})
15741568
})
@@ -1634,14 +1628,8 @@ pub async fn check_plugins_updates(
16341628
None
16351629
} else {
16361630
let use_beta = beta_folders.contains(&p.folder_name);
1637-
resolve_update_check_url(
1638-
xplane_path,
1639-
"plugin",
1640-
&p.folder_name,
1641-
url,
1642-
use_beta,
1643-
)
1644-
.map(|resolved_url| (idx, resolved_url))
1631+
resolve_update_check_url(xplane_path, "plugin", &p.folder_name, url, use_beta)
1632+
.map(|resolved_url| (idx, resolved_url))
16451633
}
16461634
})
16471635
})
@@ -2554,7 +2542,10 @@ mod tests {
25542542
.expect("nested navdata path should resolve");
25552543

25562544
assert_eq!(root, custom_data);
2557-
assert_eq!(nested, nested_navdata.canonicalize().expect("canonical nested"));
2545+
assert_eq!(
2546+
nested,
2547+
nested_navdata.canonicalize().expect("canonical nested")
2548+
);
25582549
}
25592550

25602551
#[test]
@@ -2569,13 +2560,19 @@ mod tests {
25692560
fs::create_dir_all(&nested_gns430).expect("failed to create nested navdata dir");
25702561
fs::create_dir_all(&backup_dir).expect("failed to create backup dir");
25712562

2572-
fs::write(custom_data.join("cycle.json"), r#"{"name":"X-Plane Navdata"}"#)
2573-
.expect("failed to write root cycle");
2563+
fs::write(
2564+
custom_data.join("cycle.json"),
2565+
r#"{"name":"X-Plane Navdata"}"#,
2566+
)
2567+
.expect("failed to write root cycle");
25742568
fs::write(custom_data.join("earth_nav.dat"), "nav").expect("failed to write nav file");
25752569
fs::write(custom_data.join("user_fix.dat"), "user").expect("failed to write user file");
25762570
fs::write(root_cifp.join("KSEA.dat"), "cifp").expect("failed to write CIFP file");
2577-
fs::write(nested_gns430.join("cycle.json"), r#"{"name":"GNS430 Navdata"}"#)
2578-
.expect("failed to write nested cycle");
2571+
fs::write(
2572+
nested_gns430.join("cycle.json"),
2573+
r#"{"name":"GNS430 Navdata"}"#,
2574+
)
2575+
.expect("failed to write nested cycle");
25792576
fs::write(backup_dir.join("verification.json"), "{}").expect("failed to write backup");
25802577

25812578
delete_management_item(temp.path(), "navdata", "")
@@ -2590,7 +2587,10 @@ mod tests {
25902587

25912588
let navdata = scan_navdata(temp.path()).expect("navdata scan should succeed");
25922589
assert_eq!(navdata.entries.len(), 1);
2593-
assert_eq!(navdata.entries[0].folder_name.replace('\\', "/"), "GNS430/navdata");
2590+
assert_eq!(
2591+
navdata.entries[0].folder_name.replace('\\', "/"),
2592+
"GNS430/navdata"
2593+
);
25942594
}
25952595

25962596
#[test]
@@ -2600,10 +2600,16 @@ mod tests {
26002600
let nested_gns430 = custom_data.join("GNS430").join("navdata");
26012601

26022602
fs::create_dir_all(&nested_gns430).expect("failed to create nested navdata dir");
2603-
fs::write(custom_data.join("cycle.json"), r#"{"name":"X-Plane Navdata"}"#)
2604-
.expect("failed to write root cycle");
2605-
fs::write(nested_gns430.join("cycle.json"), r#"{"name":"GNS430 Navdata"}"#)
2606-
.expect("failed to write nested cycle");
2603+
fs::write(
2604+
custom_data.join("cycle.json"),
2605+
r#"{"name":"X-Plane Navdata"}"#,
2606+
)
2607+
.expect("failed to write root cycle");
2608+
fs::write(
2609+
nested_gns430.join("cycle.json"),
2610+
r#"{"name":"GNS430 Navdata"}"#,
2611+
)
2612+
.expect("failed to write nested cycle");
26072613

26082614
delete_management_item(temp.path(), "navdata", "GNS430/navdata")
26092615
.expect("nested navdata delete should succeed");

src-tauri/src/management/skunk_updater.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1119,7 +1119,10 @@ fn select_module_url(local: &LocalConfig, use_beta: bool) -> Result<String> {
11191119
resolve_module_url(selected_zone.as_deref(), &selected_module)
11201120
}
11211121

1122-
pub(crate) fn resolve_local_module_url(target_path: &Path, use_beta: bool) -> Result<Option<String>> {
1122+
pub(crate) fn resolve_local_module_url(
1123+
target_path: &Path,
1124+
use_beta: bool,
1125+
) -> Result<Option<String>> {
11231126
let cfg_path = target_path.join(LOCAL_CFG_FILE);
11241127
if !cfg_path.exists() {
11251128
return Ok(None);

src-tauri/src/scenery/scenery_index.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1622,10 +1622,7 @@ impl SceneryIndexManager {
16221622
let mut packages: Vec<_> = index
16231623
.packages
16241624
.values()
1625-
.filter(|info| {
1626-
!(info.category == SceneryCategory::DefaultAirport
1627-
|| is_global_airports_folder_name(&info.folder_name))
1628-
})
1625+
.filter(|info| !is_global_airports_folder_name(&info.folder_name))
16291626
.collect();
16301627
let mut entries_with_sort: Vec<(u32, bool, SceneryManagerEntry)> =
16311628
Vec::with_capacity(packages.len() + 1);

0 commit comments

Comments
 (0)