use std::num::ParseIntError;
use crate::error::ParseError::BadInt;
#[derive(Debug, Eq, PartialEq)]
pub enum ParseError {
BadStringLen(usize),
BadLineLen(usize),
BadChar(char),
EmptyString,
BadInt(ParseIntError),
BadPlay(PlayError),
BadString(String)
}
impl From<ParseIntError> for ParseError {
fn from(value: ParseIntError) -> Self {
BadInt(value)
}
}
#[derive(Debug, Eq, PartialEq)]
pub enum PlayError {
DisjointTiles
}
#[derive(Debug, Eq, PartialEq)]
pub enum BoardError {
OutOfBounds,
NoPiece
}
#[derive(Debug, Eq, PartialEq)]
pub enum InvalidPlay {
WrongPlayer,
NoPiece,
OutOfBounds,
NoCommonAxis,
BlockedByPiece,
MoveThroughBlockedTile,
MoveOntoBlockedTile,
TooFar,
GameOver
}