1use std::result::Result as StdResult;
2
3use thiserror::Error;
4
5pub mod policy;
6
7#[cfg(feature = "csv-storage")]
8pub mod csv;
9
10#[derive(Error, Debug)]
11pub enum Error {
12 #[error("timing error")]
13 Timing,
14
15 #[cfg(feature = "csv-storage")]
16 #[error("CSV format error")]
17 Csv(::csv::Error),
18}
19
20#[cfg(feature = "csv-storage")]
21impl From<::csv::Error> for Error {
22 fn from(from: ::csv::Error) -> Self {
23 Self::Csv(from)
24 }
25}
26
27pub type Result<T> = StdResult<T, Error>;
28
29#[derive(Error, Debug, Eq, PartialEq)]
30pub enum WriteError {
31 #[error("no file available for writing")]
32 NoFile,
33
34 #[error("writing repeatedly failed with OS error code {code:}")]
35 RepeatedOsError { code: i32 },
36}
37
38pub type WriteResult = StdResult<(), WriteError>;