1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
use thiserror::Error;

#[derive(Error, Debug)]
pub enum Error {
    #[error("illegal USI command syntax")]
    IllegalSyntax,

    #[error("illegal USI command syntax")]
    IllegalNumberFormat(#[from] std::num::ParseIntError),

    #[error("the engine already started listening")]
    IllegalOperation,

    #[error("IO error occurred when communicating with the engine")]
    EngineIo(#[from] std::io::Error),

    #[error("An error occurred inside the external handler")]
    HandlerError(#[from] Box<dyn std::error::Error + Send + Sync>),
}