1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
use thiserror::Error;

pub type Result<T> = std::result::Result<T, Error>;

#[derive(Error, Debug)]
pub enum Error {
    #[error("{0}")]
    Io(#[from] std::io::Error),
    #[error("{0}")]
    AddressParse(#[from] std::net::AddrParseError),
    #[error("UnsupportedFileType")]
    UnsupportedFileType,
    #[error("{0}")]
    ReadDir(#[from] walkdir::Error),
    #[error("{0}")]
    Utf8(#[from] std::str::Utf8Error),
    #[error("InvalidCharset")]
    InvalidCharset,
    #[error("UnknownFilename")]
    UnknownFilename,
    #[error("InvalidPort")]
    InvalidPort,
    #[error("InvalidHeader")]
    InvalidHeader,
    #[error("InvalidMark {0}")]
    InvalidMark(u8),
    #[error("InvalidSelect")]
    InvalidSelect,
}