snark_tool/service/io/
error.rs

1
2use std::num::ParseIntError;
3use std::{fmt, io, num};
4use std::fmt::Formatter;
5
6#[derive(Debug)]
7pub struct ReadError {
8    pub message: String,
9}
10
11impl fmt::Display for ReadError {
12    fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
13        write!(f, "read error: {}", self.message)?;
14        Ok(())
15    }
16}
17
18impl From<num::ParseIntError> for ReadError {
19    fn from(error: ParseIntError) -> Self {
20        let message = format!("nested parse int error: {}", error);
21        ReadError { message }
22    }
23}
24
25impl From<io::Error> for ReadError {
26    fn from(error: io::Error) -> Self {
27        let message = format!("nested io error: {}", error);
28        ReadError { message }
29    }
30}
31
32#[derive(Debug)]
33pub struct WriteError {
34    pub message: String,
35}
36
37impl From<io::Error> for WriteError {
38    fn from(error: io::Error) -> Self {
39        let message = format!("nested io error: {}", error);
40        WriteError { message }
41    }
42}
43
44impl From<ReadError> for WriteError {
45    fn from(error: ReadError) -> Self {
46        let message = format!("nested read error: {}", error);
47        WriteError { message }
48    }
49}