use thiserror::Error;
#[derive(Error, Debug)]
pub enum Error {
#[error("Invalid color value")]
InvalidColor,
#[error("Invalid edge value")]
InvalidEdge,
#[error("One edge has to be flipped")]
FlipError,
#[error("Invalid corner value")]
InvalidCorner,
#[error("One corner has to be twisted")]
TwistError,
#[error("Two corners or two edges have to be exchanged")]
ParityError,
#[error("Invalid scramble string")]
InvalidScramble,
#[error("Invalid facelet string")]
InvalidFaceletString,
#[error("Invalid facelet reperesentation")]
InvalidFaceletValue,
#[error("Invalid cubie reperesentation")]
InvalidCubieValue,
#[error("No solution exists for the given max_depth")]
NoSolutionForMaxDepth,
#[error("Probe limit exceeded")]
ProbeLimitExceeded,
}