git.delta.rocks / jrsonnet / refs/commits / b59e0084f49a

difftreelog

refactor do not use try_blocks

Lach2025-03-23parent: #3505340.patch.diff
in: trunk

2 files changed

modifiedcmds/fleet/src/cmds/build_systems.rsdiffbeforeafterboth
--- a/cmds/fleet/src/cmds/build_systems.rs
+++ b/cmds/fleet/src/cmds/build_systems.rs
@@ -70,6 +70,33 @@
 	current: bool,
 	datetime: String,
 }
+
+fn parse_generation_line(g: &str) -> Option<Generation> {
+	let mut parts = g.split_whitespace();
+	let id = parts.next()?;
+	let id: u32 = id.parse().ok()?;
+	let date = parts.next()?;
+	let time = parts.next()?;
+	let current = if let Some(current) = parts.next() {
+		if current == "(current)" {
+			Some(true)
+		} else {
+			None
+		}
+	} else {
+		Some(false)
+	};
+	let current = current?;
+	if parts.next().is_some() {
+		warn!("unexpected text after generation: {g}");
+	}
+	Some(Generation {
+		id,
+		current,
+		datetime: format!("{date} {time}"),
+	})
+}
+
 async fn get_current_generation(host: &ConfigHost) -> Result<Generation> {
 	let mut cmd = host.cmd("nix-env").await?;
 	cmd.comparg("--profile", "/nix/var/nix/profiles/system")
@@ -81,33 +108,9 @@
 		.map(|e| e.trim())
 		.filter(|&l| !l.is_empty())
 		.filter_map(|g| {
-			let gen: Option<Generation> = try {
-				let mut parts = g.split_whitespace();
-				let id = parts.next()?;
-				let id: u32 = id.parse().ok()?;
-				let date = parts.next()?;
-				let time = parts.next()?;
-				let current = if let Some(current) = parts.next() {
-					if current == "(current)" {
-						Some(true)
-					} else {
-						None
-					}
-				} else {
-					Some(false)
-				};
-				let current = current?;
-				if parts.next().is_some() {
-					warn!("unexpected text after generation: {g}");
-				}
-				Generation {
-					id,
-					current,
-					datetime: format!("{date} {time}"),
-				}
-			};
+			let gen = parse_generation_line(g);
 			if gen.is_none() {
-				warn!("bad generation: {g}")
+				warn!("bad generation: {g}");
 			}
 			gen
 		})
modifiedcmds/fleet/src/main.rsdiffbeforeafterboth
1#![recursion_limit = "512"]1#![recursion_limit = "512"]
2#![feature(try_blocks)]
32
4pub(crate) mod cmds;3pub(crate) mod cmds;
5// pub(crate) mod command;4// pub(crate) mod command;