#![deny(missing_docs)]
use std::{io, string};
pub mod constants;
pub mod lev;
pub mod lgr;
pub mod rec;
pub mod state;
pub mod utils;
mod shared;
use lgr::LGRError;
pub use shared::{BestTimes, Clip, Position, Time, TimeEntry, Version};
#[derive(Debug, PartialEq)]
pub enum ElmaError {
AcrossUnsupported,
InvalidLevelFile,
InvalidLevelFilename,
InvalidReplayFile,
InvalidStateFile,
InvalidLGRFile(LGRError),
InvalidGravity(i32),
InvalidObject(i32),
InvalidClipping(i32),
EODMismatch,
EOFMismatch,
InvalidEvent(u8),
EORMismatch,
InvalidTimeFormat,
PaddingTooShort(isize),
NonASCII,
Io(std::io::ErrorKind),
StringFromUtf8(usize),
}
impl From<io::Error> for ElmaError {
fn from(err: io::Error) -> ElmaError {
ElmaError::Io(err.kind())
}
}
impl From<string::FromUtf8Error> for ElmaError {
fn from(err: string::FromUtf8Error) -> ElmaError {
ElmaError::StringFromUtf8(err.utf8_error().valid_up_to())
}
}