mocklogger/logger/
errors.rs

1// Author: D.S. Ljungmark <spider@skuggor.se>, Modio AB
2// SPDX-License-Identifier: AGPL-3.0-or-later
3use super::keys;
4use crate::types::DataTypeError;
5use crate::types::UnitError;
6use zbus::DBusError;
7
8#[derive(Debug, DBusError)]
9#[zbus(prefix = "se.modio.logger.fsipc")]
10pub enum LogErr {
11    #[zbus(error)]
12    ZBus(zbus::Error),
13    KeyError(String),
14    NotFound,
15    NoMetadata,
16    TransactionNotFound,
17    InvalidPrepared(String),
18    Datastore(String),
19    Buffer(String),
20    IOError(String),
21    UnitError(String),
22    DataTypeError(String),
23    Serde(String),
24}
25
26impl From<std::io::Error> for LogErr {
27    fn from(e: std::io::Error) -> Self {
28        let msg = e.to_string();
29        Self::IOError(msg)
30    }
31}
32
33impl From<modio_logger_db::Error> for LogErr {
34    fn from(e: modio_logger_db::Error) -> Self {
35        match e {
36            modio_logger_db::Error::NotFound { .. } => Self::NotFound,
37            _ => {
38                let msg = e.to_string();
39                Self::Datastore(msg)
40            }
41        }
42    }
43}
44
45impl From<serde_json::Error> for LogErr {
46    fn from(e: serde_json::Error) -> Self {
47        let msg = e.to_string();
48        Self::Serde(msg)
49    }
50}
51
52impl From<keys::KeyError> for LogErr {
53    fn from(e: keys::KeyError) -> Self {
54        let msg = e.to_string();
55        Self::KeyError(msg)
56    }
57}
58
59impl From<UnitError> for LogErr {
60    fn from(e: UnitError) -> Self {
61        let msg = e.to_string();
62        Self::UnitError(msg)
63    }
64}
65
66impl From<DataTypeError> for LogErr {
67    fn from(e: DataTypeError) -> Self {
68        let msg = e.to_string();
69        Self::DataTypeError(msg)
70    }
71}