style: apply cargo fmt across the crate (A20)
The repo never enforced rustfmt, so formatting had drifted broadly. This is a single mechanical `cargo fmt` pass over the whole crate (no behavioral change; lib suite green, 493 passed). Going forward fmt should be enforced (planned CI fmt --check step). Part of the 0.6.1 hygiene pass. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+48
-17
@@ -92,11 +92,20 @@ pub fn resolve(
|
||||
processes: &[DetectedGame],
|
||||
) -> Resolution {
|
||||
match override_ {
|
||||
ManualOverride::ForceNone => Resolution { game: None, immediate: true },
|
||||
ManualOverride::Force(g) => Resolution { game: Some(g.clone()), immediate: true },
|
||||
ManualOverride::ForceNone => Resolution {
|
||||
game: None,
|
||||
immediate: true,
|
||||
},
|
||||
ManualOverride::Force(g) => Resolution {
|
||||
game: Some(g.clone()),
|
||||
immediate: true,
|
||||
},
|
||||
ManualOverride::Auto => {
|
||||
let game = steam.or_else(|| processes.first().cloned());
|
||||
Resolution { game, immediate: false }
|
||||
Resolution {
|
||||
game,
|
||||
immediate: false,
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -192,7 +201,11 @@ impl Debouncer {
|
||||
/// lowercase it. Keeps any extension (`minecraft.exe` stays distinct from a
|
||||
/// hypothetical `minecraft`), trims surrounding whitespace.
|
||||
pub fn normalize_exe(raw: &str) -> String {
|
||||
raw.rsplit(['/', '\\']).next().unwrap_or(raw).trim().to_lowercase()
|
||||
raw.rsplit(['/', '\\'])
|
||||
.next()
|
||||
.unwrap_or(raw)
|
||||
.trim()
|
||||
.to_lowercase()
|
||||
}
|
||||
|
||||
/// Launcher/helper executables that must NEVER be reported as a game even if a
|
||||
@@ -245,8 +258,10 @@ pub fn match_processes(
|
||||
denylist: &BTreeSet<&str>,
|
||||
) -> Vec<DetectedGame> {
|
||||
// Normalize the user map once so lookups are basename/case-insensitive.
|
||||
let normalized_map: BTreeMap<String, &String> =
|
||||
user_map.iter().map(|(k, v)| (normalize_exe(k), v)).collect();
|
||||
let normalized_map: BTreeMap<String, &String> = user_map
|
||||
.iter()
|
||||
.map(|(k, v)| (normalize_exe(k), v))
|
||||
.collect();
|
||||
|
||||
let mut seen: BTreeSet<String> = BTreeSet::new();
|
||||
let mut out: Vec<DetectedGame> = Vec::new();
|
||||
@@ -288,8 +303,14 @@ mod tests {
|
||||
#[test]
|
||||
fn stable_ids_are_namespaced() {
|
||||
assert_eq!(DetectedGame::steam_id(730), "steam:730");
|
||||
assert_eq!(DetectedGame::exe_id("/usr/games/hl2_linux"), "exe:hl2_linux");
|
||||
assert_eq!(DetectedGame::exe_id("C:\\Games\\Minecraft.exe"), "exe:minecraft.exe");
|
||||
assert_eq!(
|
||||
DetectedGame::exe_id("/usr/games/hl2_linux"),
|
||||
"exe:hl2_linux"
|
||||
);
|
||||
assert_eq!(
|
||||
DetectedGame::exe_id("C:\\Games\\Minecraft.exe"),
|
||||
"exe:minecraft.exe"
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
@@ -318,8 +339,16 @@ mod tests {
|
||||
#[test]
|
||||
fn resolve_falls_back_to_first_process_then_none() {
|
||||
let procs = vec![
|
||||
DetectedGame { id: "exe:a".into(), name: Some("A".into()), source: GameSource::Process },
|
||||
DetectedGame { id: "exe:b".into(), name: Some("B".into()), source: GameSource::Process },
|
||||
DetectedGame {
|
||||
id: "exe:a".into(),
|
||||
name: Some("A".into()),
|
||||
source: GameSource::Process,
|
||||
},
|
||||
DetectedGame {
|
||||
id: "exe:b".into(),
|
||||
name: Some("B".into()),
|
||||
source: GameSource::Process,
|
||||
},
|
||||
];
|
||||
let r = resolve(&ManualOverride::Auto, None, &procs);
|
||||
assert_eq!(r.game.as_ref().unwrap().id, "exe:a");
|
||||
@@ -426,7 +455,10 @@ mod tests {
|
||||
// --- process matching --------------------------------------------------
|
||||
|
||||
fn map(pairs: &[(&str, &str)]) -> BTreeMap<String, String> {
|
||||
pairs.iter().map(|(k, v)| (k.to_string(), v.to_string())).collect()
|
||||
pairs
|
||||
.iter()
|
||||
.map(|(k, v)| (k.to_string(), v.to_string()))
|
||||
.collect()
|
||||
}
|
||||
|
||||
#[test]
|
||||
@@ -461,14 +493,13 @@ mod tests {
|
||||
let user = map(&[("zed", "Zed"), ("alpha", "Alpha")]);
|
||||
let deny = builtin_denylist();
|
||||
// Same game twice (two processes) + reverse discovery order.
|
||||
let running = vec![
|
||||
"/b/zed".into(),
|
||||
"/a/alpha".into(),
|
||||
"/c/alpha".into(),
|
||||
];
|
||||
let running = vec!["/b/zed".into(), "/a/alpha".into(), "/c/alpha".into()];
|
||||
let got = match_processes(&running, &user, &deny);
|
||||
// Deduped to two, sorted by id (alpha before zed) regardless of scan order.
|
||||
assert_eq!(got.iter().map(|g| g.id.as_str()).collect::<Vec<_>>(), vec!["exe:alpha", "exe:zed"]);
|
||||
assert_eq!(
|
||||
got.iter().map(|g| g.id.as_str()).collect::<Vec<_>>(),
|
||||
vec!["exe:alpha", "exe:zed"]
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
||||
Reference in New Issue
Block a user