oxwm

https://git.tonybtw.com/oxwm.git git://git.tonybtw.com/oxwm.git

move errors to `error` module

Commit
953e629a33801ed11e0632377ffd30220fa0e9d2
Parent
2eaba09
Author
emzywastaken <amiamemetoo@gmail.com>
Date
2025-10-14 13:36:04

Diff

diff --git a/src/bar/bar.rs b/src/bar/bar.rs
index 36eae4a..4d6d2ee 100644
--- a/src/bar/bar.rs
+++ b/src/bar/bar.rs
@@ -1,7 +1,7 @@
 use super::blocks::Block;
 use super::font::{Font, FontDraw};
 use crate::Config;
-use crate::window_manager::X11Error;
+use crate::errors::X11Error;
 use std::time::Instant;
 use x11rb::COPY_DEPTH_FROM_PARENT;
 use x11rb::connection::Connection;
diff --git a/src/bar/font.rs b/src/bar/font.rs
index a382f81..8cfe7f1 100644
--- a/src/bar/font.rs
+++ b/src/bar/font.rs
@@ -3,7 +3,7 @@ use x11::xft::{XftColor, XftDraw, XftDrawStringUtf8, XftFont, XftFontOpenName};
 use x11::xlib::{Colormap, Display, Drawable, Visual};
 use x11::xrender::XRenderColor;
 
-use crate::window_manager::X11Error;
+use crate::errors::X11Error;
 
 pub struct Font {
     xft_font: *mut XftFont,
diff --git a/src/errors.rs b/src/errors.rs
new file mode 100644
index 0000000..e6ec4fc
--- /dev/null
+++ b/src/errors.rs
@@ -0,0 +1,87 @@
+#[derive(Debug)]
+pub enum WmError {
+    X11(X11Error),
+    Io(std::io::Error),
+    Anyhow(anyhow::Error),
+}
+
+#[derive(Debug)]
+pub enum X11Error {
+    ConnectError(x11rb::errors::ConnectError),
+    ConnectionError(x11rb::errors::ConnectionError),
+    ReplyError(x11rb::errors::ReplyError),
+    ReplyOrIdError(x11rb::errors::ReplyOrIdError),
+    DisplayOpenFailed,
+    FontLoadFailed(String),
+    DrawCreateFailed,
+}
+
+impl std::fmt::Display for WmError {
+    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+        match self {
+            Self::X11(error) => write!(f, "{}", error),
+            Self::Io(error) => write!(f, "{}", error),
+            Self::Anyhow(error) => write!(f, "{}", error),
+        }
+    }
+}
+
+impl std::error::Error for WmError {}
+
+impl std::fmt::Display for X11Error {
+    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+        match self {
+            Self::ConnectError(err) => write!(f, "{}", err),
+            Self::ConnectionError(err) => write!(f, "{}", err),
+            Self::ReplyError(err) => write!(f, "{}", err),
+            Self::ReplyOrIdError(err) => write!(f, "{}", err),
+            Self::DisplayOpenFailed => write!(f, "failed to open X11 display"),
+            Self::FontLoadFailed(font_name) => write!(f, "failed to load Xft font: {}", font_name),
+            Self::DrawCreateFailed => write!(f, "failed to create XftDraw"),
+        }
+    }
+}
+
+impl std::error::Error for X11Error {}
+
+impl<T: Into<X11Error>> From<T> for WmError {
+    fn from(value: T) -> Self {
+        Self::X11(value.into())
+    }
+}
+
+impl From<std::io::Error> for WmError {
+    fn from(value: std::io::Error) -> Self {
+        Self::Io(value)
+    }
+}
+
+impl From<anyhow::Error> for WmError {
+    fn from(value: anyhow::Error) -> Self {
+        Self::Anyhow(value)
+    }
+}
+
+impl From<x11rb::errors::ConnectError> for X11Error {
+    fn from(value: x11rb::errors::ConnectError) -> Self {
+        X11Error::ConnectError(value)
+    }
+}
+
+impl From<x11rb::errors::ConnectionError> for X11Error {
+    fn from(value: x11rb::errors::ConnectionError) -> Self {
+        X11Error::ConnectionError(value)
+    }
+}
+
+impl From<x11rb::errors::ReplyError> for X11Error {
+    fn from(value: x11rb::errors::ReplyError) -> Self {
+        X11Error::ReplyError(value)
+    }
+}
+
+impl From<x11rb::errors::ReplyOrIdError> for X11Error {
+    fn from(value: x11rb::errors::ReplyOrIdError) -> Self {
+        X11Error::ReplyOrIdError(value)
+    }
+}
diff --git a/src/keyboard/handlers.rs b/src/keyboard/handlers.rs
index 6f615d4..a97d9e4 100644
--- a/src/keyboard/handlers.rs
+++ b/src/keyboard/handlers.rs
@@ -4,7 +4,7 @@ use std::process::Command;
 use x11rb::connection::Connection;
 use x11rb::protocol::xproto::*;
 
-use crate::window_manager::X11Error;
+use crate::errors::X11Error;
 
 #[derive(Debug, Copy, Clone)]
 pub enum KeyAction {
diff --git a/src/lib.rs b/src/lib.rs
index 03d3910..5a16b85 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,4 +1,5 @@
 pub mod bar;
+pub mod errors;
 pub mod keyboard;
 pub mod layout;
 pub mod window_manager;
diff --git a/src/window_manager.rs b/src/window_manager.rs
index b5f3e96..27ca7e2 100644
--- a/src/window_manager.rs
+++ b/src/window_manager.rs
@@ -1,5 +1,6 @@
 use crate::Config;
 use crate::bar::Bar;
+use crate::errors::WmError;
 use crate::keyboard::{self, Arg, KeyAction, handlers};
 use crate::layout::GapConfig;
 use crate::layout::Layout;
@@ -34,94 +35,8 @@ pub struct WindowManager {
     bar: Bar,
 }
 
-#[derive(Debug)]
-pub enum WmError {
-    X11(X11Error),
-    Io(std::io::Error),
-    Anyhow(anyhow::Error),
-}
-
-#[derive(Debug)]
-pub enum X11Error {
-    ConnectError(x11rb::errors::ConnectError),
-    ConnectionError(x11rb::errors::ConnectionError),
-    ReplyError(x11rb::errors::ReplyError),
-    ReplyOrIdError(x11rb::errors::ReplyOrIdError),
-    DisplayOpenFailed,
-    FontLoadFailed(String),
-    DrawCreateFailed,
-}
-
 type WmResult<T> = Result<T, WmError>;
 
-impl std::fmt::Display for WmError {
-    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
-        match self {
-            Self::X11(error) => write!(f, "{}", error),
-            Self::Io(error) => write!(f, "{}", error),
-            Self::Anyhow(error) => write!(f, "{}", error),
-        }
-    }
-}
-
-impl std::error::Error for WmError {}
-
-impl std::fmt::Display for X11Error {
-    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
-        match self {
-            Self::ConnectError(err) => write!(f, "{}", err),
-            Self::ConnectionError(err) => write!(f, "{}", err),
-            Self::ReplyError(err) => write!(f, "{}", err),
-            Self::ReplyOrIdError(err) => write!(f, "{}", err),
-            Self::DisplayOpenFailed => write!(f, "failed to open X11 display"),
-            Self::FontLoadFailed(font_name) => write!(f, "failed to load Xft font: {}", font_name),
-            Self::DrawCreateFailed => write!(f, "failed to create XftDraw"),
-        }
-    }
-}
-
-impl<T: Into<X11Error>> From<T> for WmError {
-    fn from(value: T) -> Self {
-        Self::X11(value.into())
-    }
-}
-
-impl From<std::io::Error> for WmError {
-    fn from(value: std::io::Error) -> Self {
-        Self::Io(value)
-    }
-}
-
-impl From<anyhow::Error> for WmError {
-    fn from(value: anyhow::Error) -> Self {
-        Self::Anyhow(value)
-    }
-}
-
-impl From<x11rb::errors::ConnectError> for X11Error {
-    fn from(value: x11rb::errors::ConnectError) -> Self {
-        X11Error::ConnectError(value)
-    }
-}
-
-impl From<x11rb::errors::ConnectionError> for X11Error {
-    fn from(value: x11rb::errors::ConnectionError) -> Self {
-        X11Error::ConnectionError(value)
-    }
-}
-
-impl From<x11rb::errors::ReplyError> for X11Error {
-    fn from(value: x11rb::errors::ReplyError) -> Self {
-        X11Error::ReplyError(value)
-    }
-}
-
-impl From<x11rb::errors::ReplyOrIdError> for X11Error {
-    fn from(value: x11rb::errors::ReplyOrIdError) -> Self {
-        X11Error::ReplyOrIdError(value)
-    }
-}
-
 impl WindowManager {
     pub fn new(config: Config) -> WmResult<Self> {
         let (connection, screen_number) = x11rb::connect(None)?;