summaryrefslogtreecommitdiff
path: root/racer-tracer/src/error.rs
diff options
context:
space:
mode:
Diffstat (limited to 'racer-tracer/src/error.rs')
-rw-r--r--racer-tracer/src/error.rs26
1 files changed, 26 insertions, 0 deletions
diff --git a/racer-tracer/src/error.rs b/racer-tracer/src/error.rs
new file mode 100644
index 0000000..f581b08
--- /dev/null
+++ b/racer-tracer/src/error.rs
@@ -0,0 +1,26 @@
+use thiserror::Error;
+
+#[derive(Error, Debug)]
+pub enum TracerError {
+ #[error("Unknown error: {message}")]
+ Unknown { message: String, exit_code: i32 },
+
+ #[error("Failed to create window: {0}")]
+ FailedToCreateWindow(String),
+
+ #[error("Failed to update window: {0}")]
+ FailedToUpdateWindow(String),
+}
+
+impl From<TracerError> for i32 {
+ fn from(tracer_error: TracerError) -> Self {
+ match tracer_error {
+ TracerError::Unknown {
+ message: _,
+ exit_code,
+ } => exit_code,
+ TracerError::FailedToCreateWindow(_) => 2,
+ TracerError::FailedToUpdateWindow(_) => 3,
+ }
+ }
+}