summary refs log tree commit diff
path: root/src/terminal/error.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/terminal/error.rs')
-rw-r--r--src/terminal/error.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/terminal/error.rs b/src/terminal/error.rs
index 6666e49..795f973 100644
--- a/src/terminal/error.rs
+++ b/src/terminal/error.rs
@@ -1,7 +1,13 @@
+#![forbid(unsafe_code)]
+
+pub type Result<T> = std::result::Result<T, TerminalError>;
+
+
 #[derive(Clone,Debug,Eq,Hash,Ord,PartialEq,PartialOrd)]
 pub enum TerminalError {
   Input(String),
   ModeSetting(String),
+  Internal(String),
 }
 
 impl std::error::Error for TerminalError { }
@@ -15,6 +21,9 @@ impl std::fmt::Display for TerminalError {
       TerminalError::ModeSetting(s) =>
         f.write_fmt(format_args!(
             "Can't set terminal mode: {}", s)),
+      TerminalError::Internal(s) =>
+        f.write_fmt(format_args!(
+            "Internal error regarding the terminal: {}", s)),
     }
   }
 }
@@ -29,3 +38,8 @@ pub fn mode_setting(e: impl std::error::Error) -> TerminalError {
   TerminalError::ModeSetting(format!("{}", e))
 }
 
+
+pub fn internal(e: impl std::error::Error) -> TerminalError {
+  TerminalError::Internal(format!("{}", e))
+}
+