fix(openwrt): clear all 4 clippy lints so the CI -D warnings gate is real

CI (.github/workflows/ci.yml) already runs
`cargo clippy --all-targets --all-features -- -D warnings`, but
archipelago-openwrt emitted 4 warnings on a clean checkout, so the gate
was red by default and enforced nothing. Fixed each lint at the source;
no #[allow] added.

- clippy::cmp_owned (wan.rs:146) — dropped the .to_string() that built an
  owned String purely to compare against "1"; &str == &str compares the
  same content.
- clippy::unnecessary_sort_by (wifi_scan.rs:75, :177) — replaced
  sort_by(|a, b| b.signal.cmp(&a.signal)) with
  sort_by_key(|n| std::cmp::Reverse(n.signal)). Both are stable descending
  sorts on signal, so tie order is unchanged. Deliberately NOT -n.signal,
  which would misorder i32::MIN.
- clippy::trim_split_whitespace (wifi_scan.rs:156) — removed the .trim()
  before .split_whitespace(); the latter already skips leading/trailing
  whitespace and never yields empty items, so parsing is unchanged.

All three are semantics-preserving rewrites: no change to comparison
results, sort ordering, or channel parsing.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
archipelago
2026-08-02 12:25:47 -04:00
co-authored by Claude Opus 5
parent 6ed876376a
commit 49345b67ed
2 changed files with 7 additions and 4 deletions
+1 -1
View File
@@ -143,7 +143,7 @@ pub fn get_wan_status(router: &Router) -> serde_json::Value {
if [ \"$n\" = \"wan\" ]; then \
uci get firewall.@zone[$i].masq 2>/dev/null; break; \
fi; done";
router.run_ok(script).unwrap_or_default().trim().to_string() == "1"
router.run_ok(script).unwrap_or_default().trim() == "1"
};
info!("[{}] WAN status: configured={} ssid={:?} assoc={:?} sta_iface={:?} sta_state={:?} ip={:?} lan={} masq={}",
+6 -3
View File
@@ -72,7 +72,9 @@ fn parse_mtk_site_survey(output: &str) -> Result<Vec<ScannedNetwork>> {
encryption: normalize_encryption(security),
});
}
networks.sort_by(|a, b| b.signal.cmp(&a.signal));
// Strongest signal first. `Reverse` keeps this a stable descending sort,
// identical in ordering (including ties) to the previous `sort_by` comparator.
networks.sort_by_key(|n| std::cmp::Reverse(n.signal));
Ok(networks)
}
@@ -153,7 +155,6 @@ fn parse_iwinfo_scan(output: &str) -> Result<Vec<ScannedNetwork>> {
} else if line.contains("Channel:") && !line.starts_with("Encryption") {
if let Some(ch_part) = line.split("Channel:").nth(1) {
n.channel = ch_part
.trim()
.split_whitespace()
.next()
.and_then(|s| s.parse().ok())
@@ -174,7 +175,9 @@ fn parse_iwinfo_scan(output: &str) -> Result<Vec<ScannedNetwork>> {
}
}
networks.sort_by(|a, b| b.signal.cmp(&a.signal));
// Strongest signal first. `Reverse` keeps this a stable descending sort,
// identical in ordering (including ties) to the previous `sort_by` comparator.
networks.sort_by_key(|n| std::cmp::Reverse(n.signal));
Ok(networks)
}