display_info/
error.rs

1use thiserror::Error;
2
3#[cfg(all(target_family = "unix", not(target_os = "macos")))]
4#[derive(Debug, Error)]
5pub enum DIError {
6    #[error("{0}")]
7    Error(String),
8    #[error(transparent)]
9    StdStrUtf8Error(#[from] std::str::Utf8Error),
10    #[error(transparent)]
11    XcbError(#[from] xcb::Error),
12    #[error(transparent)]
13    XcbConnError(#[from] xcb::ConnError),
14    #[error(transparent)]
15    SmithayClientToolkitClientDispatchError(
16        #[from] smithay_client_toolkit::reexports::client::DispatchError,
17    ),
18    #[error(transparent)]
19    SmithayClientToolkitClientConnectError(
20        #[from] smithay_client_toolkit::reexports::client::ConnectError,
21    ),
22}
23
24#[cfg(target_os = "macos")]
25#[derive(Debug, Error)]
26pub enum DIError {
27    #[error("{0}")]
28    Error(String),
29}
30
31#[cfg(target_os = "windows")]
32#[derive(Debug, Error)]
33pub enum DIError {
34    #[error("{0}")]
35    Error(String),
36    #[error(transparent)]
37    WindowsCoreError(#[from] windows::core::Error),
38    #[error(transparent)]
39    Utf16Error(#[from] widestring::error::Utf16Error),
40}
41
42impl DIError {
43    pub fn new<S: ToString>(err: S) -> Self {
44        DIError::Error(err.to_string())
45    }
46}
47
48pub type DIResult<T> = Result<T, DIError>;