thot_cli/
result.rs

1use clap::error::Error as ClapError;
2use settings_manager::result::Error as SettingsError;
3use std::io;
4use std::result::Result as StdResult;
5use thot_core::result::Error as CoreError;
6use thot_local::result::Error as LocalError;
7
8pub type Result<T = ()> = StdResult<T, Error>;
9
10#[derive(Debug)]
11pub enum Error {
12    ClapError(ClapError),
13    CoreError(CoreError),
14    IoError(io::Error),
15    LocalError(LocalError),
16    SettingsError(SettingsError),
17}
18
19impl From<ClapError> for Error {
20    fn from(err: ClapError) -> Self {
21        Error::ClapError(err)
22    }
23}
24
25impl From<CoreError> for Error {
26    fn from(err: CoreError) -> Self {
27        Error::CoreError(err)
28    }
29}
30
31impl From<io::Error> for Error {
32    fn from(err: io::Error) -> Self {
33        Error::IoError(err)
34    }
35}
36
37impl From<LocalError> for Error {
38    fn from(err: LocalError) -> Self {
39        Error::LocalError(err)
40    }
41}
42
43impl From<SettingsError> for Error {
44    fn from(err: SettingsError) -> Self {
45        Error::SettingsError(err)
46    }
47}
48
49#[cfg(test)]
50#[path = "./result_test.rs"]
51mod result_test;