Extract shared lua_err closure in eval_ci
Five identical map_err closures wrapping mlua::Error via
FennelError::from_lua collapsed into a single closure.

Assisted-by: GLM-5.1 via pi
change uumvuorpsouktmwxmrnrsoylzzysztrm
commit 53a174c8735dd5f79e5126ff9c1ce03ddcbc9a5f
author Alpha Chen <alpha@kejadlen.dev>
date
parent ovynszxz
diff --git a/src/ci.rs b/src/ci.rs
index f85bd51..cf6d753 100644
--- a/src/ci.rs
+++ b/src/ci.rs
@@ -334,23 +334,16 @@ pub fn eval_ci(
     })?;
 
     // Extract the registration table.
-    let registry: mlua::Table = fennel
-        .lua()
-        .globals()
-        .get("_quire_jobs")
-        .map_err(|e| crate::fennel::FennelError::from_lua(source, name, &e))?;
+    let lua_err = |e: mlua::Error| crate::fennel::FennelError::from_lua(source, name, &e);
+    let registry: mlua::Table = fennel.lua().globals().get("_quire_jobs").map_err(lua_err)?;
     let mut jobs = Vec::new();
     for entry in registry.sequence_values::<mlua::Table>() {
-        let entry = entry.map_err(|e| crate::fennel::FennelError::from_lua(source, name, &e))?;
-        let id: String = entry
-            .get("id")
-            .map_err(|e| crate::fennel::FennelError::from_lua(source, name, &e))?;
-        let inputs_table: mlua::Table = entry
-            .get("inputs")
-            .map_err(|e| crate::fennel::FennelError::from_lua(source, name, &e))?;
+        let entry = entry.map_err(lua_err)?;
+        let id: String = entry.get("id").map_err(lua_err)?;
+        let inputs_table: mlua::Table = entry.get("inputs").map_err(lua_err)?;
         let mut inputs = Vec::new();
         for input in inputs_table.sequence_values::<String>() {
-            inputs.push(input.map_err(|e| crate::fennel::FennelError::from_lua(source, name, &e))?);
+            inputs.push(input.map_err(lua_err)?);
         }
         jobs.push(JobDef { id, inputs });
     }