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}