2024-03-22 00:01:40 +01:00
|
|
|
use thiserror::Error;
|
|
|
|
|
2024-03-22 13:00:49 +01:00
|
|
|
pub type WResult<T> = std::result::Result<T, Error>;
|
2024-03-22 00:01:40 +01:00
|
|
|
pub type GameResult<T> = std::result::Result<T, GameError>;
|
|
|
|
|
|
|
|
#[derive(Debug, Error)]
|
|
|
|
pub enum Error {
|
|
|
|
#[error("GameError")]
|
|
|
|
GameError {
|
|
|
|
#[from]
|
|
|
|
source: GameError,
|
|
|
|
},
|
|
|
|
#[error(transparent)]
|
|
|
|
Other {
|
|
|
|
#[from]
|
|
|
|
source: anyhow::Error,
|
|
|
|
},
|
2024-03-22 14:12:49 +01:00
|
|
|
// for `FromStr` of `BuiltinSolver`
|
|
|
|
#[error("Unknown builtin solver")]
|
2024-03-22 14:13:33 +01:00
|
|
|
UnknownBuiltinSolver,
|
2024-03-22 00:01:40 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(Debug, Clone, Error)]
|
|
|
|
pub enum GameError {
|
|
|
|
#[error("The guess has the wrong length")]
|
|
|
|
GuessHasWrongLength,
|
|
|
|
#[error("The game is finished but a guess is being made")]
|
|
|
|
TryingToPlayAFinishedGame,
|
|
|
|
}
|