snark_tool/service/io/
error.rs1
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}