use std::error::Error;
use std::fmt::{Display, Formatter};
use std::io;
#[derive(Debug)]
pub enum LoadErr {
CantReadFile,
Invalid,
BufferTooShort,
Cancelled,
IO(io::Error),
}
impl From<io::Error> for LoadErr {
fn from(err: io::Error) -> Self {
if err.kind() == io::ErrorKind::UnexpectedEof {
Self::BufferTooShort
} else {
Self::IO(err)
}
}
}
impl Display for LoadErr {
fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
write!(f, "{self:?}")
}
}
impl Error for LoadErr {}
#[derive(Debug, Clone, Copy)]
#[non_exhaustive]
pub enum LoadDefect {
UnknownEffect,
InvalidText,
OutOfBoundsValue,
OutOfBoundsPtr,
}