From ed991c855edf82222fed0664e8d9c5e2106e509c Mon Sep 17 00:00:00 2001 From: 2witstudios <2witstudios@gmail.com> Date: Sat, 7 Mar 2026 21:56:36 -0600 Subject: [PATCH] refactor: Use idiomatic let...else and remove redundant closures Replace match-based early returns with let...else across scan_dir functions and engine request handlers. Replace redundant closures with method references (String::is_empty, ToString::to_string, IntoInnerError::into_error). Co-Authored-By: Claude Opus 4.6 --- crates/pu-core/src/agent_def.rs | 5 ++-- crates/pu-core/src/manifest.rs | 4 +++- crates/pu-core/src/schedule_def.rs | 7 +++--- crates/pu-core/src/swarm_def.rs | 5 ++-- crates/pu-core/src/template.rs | 5 ++-- crates/pu-engine/src/engine.rs | 38 ++++++++++++------------------ 6 files changed, 27 insertions(+), 37 deletions(-) diff --git a/crates/pu-core/src/agent_def.rs b/crates/pu-core/src/agent_def.rs index 4a48014..c765721 100644 --- a/crates/pu-core/src/agent_def.rs +++ b/crates/pu-core/src/agent_def.rs @@ -96,9 +96,8 @@ pub fn delete_agent_def(dir: &Path, name: &str) -> Result fn scan_dir(dir: &Path, scope: &str) -> Vec { let mut defs = Vec::new(); - let entries = match std::fs::read_dir(dir) { - Ok(e) => e, - Err(_) => return defs, + let Ok(entries) = std::fs::read_dir(dir) else { + return defs; }; for entry in entries.flatten() { let path = entry.path(); diff --git a/crates/pu-core/src/manifest.rs b/crates/pu-core/src/manifest.rs index 0a024d0..9aec1e8 100644 --- a/crates/pu-core/src/manifest.rs +++ b/crates/pu-core/src/manifest.rs @@ -28,7 +28,9 @@ pub fn write_manifest(project_root: &Path, manifest: &Manifest) -> Result<(), Pu let file = std::fs::File::create(&tmp_path)?; let mut writer = std::io::BufWriter::new(file); writer.write_all(content.as_bytes())?; - let file = writer.into_inner().map_err(|e| e.into_error())?; + let file = writer + .into_inner() + .map_err(std::io::IntoInnerError::into_error)?; file.sync_all()?; std::fs::rename(&tmp_path, &path)?; Ok(()) diff --git a/crates/pu-core/src/schedule_def.rs b/crates/pu-core/src/schedule_def.rs index b937a0e..195853a 100644 --- a/crates/pu-core/src/schedule_def.rs +++ b/crates/pu-core/src/schedule_def.rs @@ -82,7 +82,7 @@ impl ScheduleDef { "agent_name must not be set when root is true", )); } - } else if self.agent_name.as_ref().is_none_or(|n| n.is_empty()) { + } else if self.agent_name.as_ref().is_none_or(String::is_empty) { return Err(std::io::Error::new( std::io::ErrorKind::InvalidInput, "agent_name is required when root is false", @@ -277,9 +277,8 @@ pub fn next_occurrence( fn scan_dir(dir: &Path, scope: &str) -> Vec { let mut defs = Vec::new(); - let entries = match std::fs::read_dir(dir) { - Ok(e) => e, - Err(_) => return defs, + let Ok(entries) = std::fs::read_dir(dir) else { + return defs; }; for entry in entries.flatten() { let path = entry.path(); diff --git a/crates/pu-core/src/swarm_def.rs b/crates/pu-core/src/swarm_def.rs index f766354..ec3aeb7 100644 --- a/crates/pu-core/src/swarm_def.rs +++ b/crates/pu-core/src/swarm_def.rs @@ -101,9 +101,8 @@ pub fn delete_swarm_def(dir: &Path, name: &str) -> Result fn scan_dir(dir: &Path, scope: &str) -> Vec { let mut defs = Vec::new(); - let entries = match std::fs::read_dir(dir) { - Ok(e) => e, - Err(_) => return defs, + let Ok(entries) = std::fs::read_dir(dir) else { + return defs; }; for entry in entries.flatten() { let path = entry.path(); diff --git a/crates/pu-core/src/template.rs b/crates/pu-core/src/template.rs index 582de67..b3ebf1a 100644 --- a/crates/pu-core/src/template.rs +++ b/crates/pu-core/src/template.rs @@ -222,9 +222,8 @@ pub fn delete_template(dir: &Path, name: &str) -> Result { fn scan_dir(dir: &Path, source: &str) -> Vec