changeset 577:66ea37471d22

Fix stack overflow when displaying Status Fixes #15
author Lewin Bormann <lbo@spheniscida.de>
date Sat, 20 Aug 2022 09:41:04 +0200
parents 679c163d1259
children 4276ae011066
files src/error.rs
diffstat 1 files changed, 15 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/error.rs	Wed Jul 20 12:39:45 2022 -0700
+++ b/src/error.rs	Sat Aug 20 09:41:04 2022 +0200
@@ -47,7 +47,7 @@
 
 impl Display for Status {
     fn fmt(&self, fmt: &mut Formatter) -> result::Result<(), fmt::Error> {
-        fmt.write_str(&self.to_string())
+        fmt.write_str(&self.err)
     }
 }
 
@@ -68,7 +68,10 @@
         Status { code, err }
     }
     pub fn annotate<S: AsRef<str>>(self, msg: S) -> Status {
-        Status { code: self.code, err: format!("{}: {}", msg.as_ref(), self.err) }
+        Status {
+            code: self.code,
+            err: format!("{}: {}", msg.as_ref(), self.err),
+        }
     }
 }
 
@@ -108,3 +111,13 @@
         }
     }
 }
+
+#[cfg(test)]
+mod tests {
+    use super::{StatusCode, Status};
+    #[test]
+    fn test_status_to_string() {
+        let s = Status::new(StatusCode::InvalidData, "Invalid data!");
+        assert_eq!("InvalidData: Invalid data!", s.to_string());
+    }
+}