1use std::io;
3use std::result;
4use thiserror::Error;
5
6#[derive(Debug, Error)]
18pub enum CNIError {
19 #[error("no net configuration with name {0:?} in {1}")]
20 NotFound(String, String),
21 #[error("no net configurations found in {0}")]
22 NoConfigsFound(String),
23 #[error("execute CNI error {0}")]
24 ExecuteError(String),
25 #[error("Invalid Configuration: {0}")]
26 Config(String),
27 #[error("IO error: {0}")]
28 Io(#[source] Box<io::Error>),
29 #[error("Empty key")]
30 EmptyKey,
31 #[error("{0}")]
32 TooLong(String),
33 #[error("Invalid checksum")]
34 InvalidChecksum(String),
35 #[error("Invalid filename")]
36 InvalidFilename(String),
37 #[error("Invalid data: {0}")]
40 VarDecode(String),
41 #[error("{0}")]
42 TableRead(String),
43 #[error("Database Closed")]
44 DBClosed,
45 #[error("{0}")]
46 LogRead(String),
47}
48
49impl From<io::Error> for CNIError {
50 #[inline]
51 fn from(e: io::Error) -> CNIError {
52 CNIError::Io(Box::new(e))
53 }
54}
55
56pub type Result<T> = result::Result<T, CNIError>;