ctf_pwn/io/pipe/
error.rs

1use ascii::FromAsciiError;
2
3use thiserror::Error;
4
5#[derive(Error, Debug)]
6pub enum PipeError {
7    #[error("io error {0}")]
8    IOError(#[from] std::io::Error),
9    #[error("ascii parse error {0}")]
10    AsciiParseError(String),
11    #[error("utf8 parse error {0}")]
12    Utf8ParseError(#[from] std::string::FromUtf8Error),
13    #[error("format error {0}")]
14    FmtError(#[from] std::fmt::Error),
15    #[error("regex error {0}")]
16    RegexError(#[from] regex::Error),
17    #[error("recv timeout")]
18    Timeout,
19    #[error("recv timeout")]
20    ConditionFailed,
21    #[error("unknown error")]
22    Unknown,
23}
24
25impl<T> From<FromAsciiError<T>> for PipeError {
26    fn from(value: FromAsciiError<T>) -> Self {
27        PipeError::AsciiParseError(format!("{value}"))
28    }
29}