1use failure::Fail;
4
5#[derive(Debug, Fail)]
7pub enum BlackJackError {
8 #[fail(display = "No series name present!")]
10 NoSeriesName,
11
12 #[fail(display = "Unable to decode series")]
14 SerializationDecodeError(Box<bincode::ErrorKind>),
15
16 #[fail(display = "Unable to read headers!")]
18 HeaderParseError(csv::Error),
19
20 #[fail(display = "IO error")]
22 IoError(std::io::Error),
23
24 #[fail(display = "ValueError")]
26 ValueError(String),
27
28 #[fail(display = "LengthMismatch")]
30 LengthMismatch(String),
31}
32
33impl From<&str> for BlackJackError {
34 fn from(error: &str) -> BlackJackError {
35 BlackJackError::ValueError(error.to_owned())
36 }
37}
38
39impl From<std::io::Error> for BlackJackError {
40 fn from(error: std::io::Error) -> BlackJackError {
41 BlackJackError::IoError(error)
42 }
43}
44
45impl From<csv::Error> for BlackJackError {
46 fn from(error: csv::Error) -> BlackJackError {
47 BlackJackError::HeaderParseError(error)
48 }
49}
50
51impl From<Box<bincode::ErrorKind>> for BlackJackError {
52 fn from(error: Box<bincode::ErrorKind>) -> BlackJackError {
53 BlackJackError::SerializationDecodeError(error)
54 }
55}