more errors
change woxrvsxtsvszyxppxtmqyynwqnoyvpmk
commit 91d5dd369bc27fcf63f482ca439ecbed98c51754
author Alpha Chen <alpha@kejadlen.dev>
date
parent knonnpkx
diff --git a/src/main.rs b/src/main.rs
index c4197d7..91f02b0 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -36,10 +36,10 @@ pub enum FrorkError {
     UnknownAssertionType { assertion_type: String },
     #[error("Invalid arguments: {0}")]
     InvalidArguments(String),
+    #[error("Missing assertion type")]
+    MissingAssertionType,
     #[error("Lua error: {0}")]
     Lua(String),
-    #[error("Assertion error: {0}")]
-    Assertion(String),
 }
 
 impl From<LuaError> for FrorkError {
@@ -161,19 +161,19 @@ impl AssertionType for Symlink {
             } else {
                 unimplemented!(
                     "{}",
-                    FrorkError::Assertion(format!(
+                    format!(
                         "symlink {} {} points to wrong target",
                         self.target, self.source
-                    ))
+                    )
                 );
             }
         } else {
             unimplemented!(
                 "{}",
-                FrorkError::Assertion(format!(
+                format!(
                     "symlink {} {} target exists but is not a symlink",
                     self.target, self.source
-                ))
+                )
             );
         }
     }
@@ -208,9 +208,7 @@ impl AssertionType for FennelAssertion {
         match result.as_str() {
             "ok" => Ok(Status::Ok),
             "missing" => Ok(Status::Missing),
-            _ => {
-                Err(FrorkError::Assertion(format!("Invalid status returned: '{}'", result)).into())
-            }
+            _ => Err(eyre!("Invalid status returned: '{}'", result)),
         }
     }
 
@@ -240,36 +238,6 @@ impl Default for Frork {
 }
 
 impl Frork {
-    fn check(&self, args: LuaMultiValue) -> LuaResult<()> {
-        if args.is_empty() {
-            return Err(LuaError::external(FrorkError::NoOperation));
-        }
-
-        let mut args_iter = args.into_iter();
-        let assertion_type = args_iter
-            .next()
-            .and_then(|v| v.to_string().ok())
-            .ok_or_else(|| {
-                LuaError::external(FrorkError::InvalidArguments(
-                    "First argument must be assertion type".to_string(),
-                ))
-            })?;
-
-        let assertion_args: LuaMultiValue = args_iter.collect();
-
-        let assertion = self
-            .registry
-            .borrow()
-            .create(&assertion_type, assertion_args)
-            .map_err(LuaError::external)?;
-        let status = assertion.status().map_err(LuaError::external)?;
-        match status {
-            Status::Ok => println!("ok: {}", assertion.display()),
-            Status::Missing => println!("missing: {}", assertion.display()),
-        }
-        Ok(())
-    }
-
     fn register(&self, name: &str, table: LuaTable) -> LuaResult<()> {
         let status_fn: LuaFunction = table.get("status")?;
 
@@ -307,6 +275,32 @@ impl Frork {
             .map_err(FrorkError::from)?;
         Ok(frork_table)
     }
+
+    fn check(&self, args: LuaMultiValue) -> LuaResult<()> {
+        if args.is_empty() {
+            return Err(LuaError::external(FrorkError::NoOperation));
+        }
+
+        let mut args_iter = args.into_iter();
+        let assertion_type = args_iter
+            .next()
+            .and_then(|v| v.to_string().ok())
+            .ok_or_else(|| LuaError::external(FrorkError::MissingAssertionType))?;
+
+        let assertion_args: LuaMultiValue = args_iter.collect();
+
+        let assertion = self
+            .registry
+            .borrow()
+            .create(&assertion_type, assertion_args)
+            .map_err(LuaError::external)?;
+        let status = assertion.status().map_err(LuaError::external)?;
+        match status {
+            Status::Ok => println!("ok: {}", assertion.display()),
+            Status::Missing => println!("missing: {}", assertion.display()),
+        }
+        Ok(())
+    }
 }
 
 fn run(command: &Commands) -> color_eyre::Result<()> {