pub type Result<T> = core::result::Result<T, Error>;
pub type SliceReadResult<T> = core::result::Result<T, SliceReadError>;
pub type VecWriteResult = core::result::Result<(), VecWriteError>;
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub enum Error {
InvalidMagicNumber,
SizeMismatch,
SliceReadError(SliceReadError),
ParseError(usize),
Utf8Error,
VersionNotSupported,
VecWriteError(VecWriteError),
PropError(PropError),
}
impl From<SliceReadError> for Error {
fn from(e: SliceReadError) -> Error {
Error::SliceReadError(e)
}
}
impl From<VecWriteError> for Error {
fn from(e: VecWriteError) -> Error {
Error::VecWriteError(e)
}
}
impl From<PropError> for Error {
fn from(e: PropError) -> Self {
Self::PropError(e)
}
}
impl From<core::str::Utf8Error> for Error {
fn from(_: core::str::Utf8Error) -> Error {
Error::Utf8Error
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub enum PropError {
NotFound,
Utf8Error,
Missing0,
SliceReadError(SliceReadError),
}
impl From<core::str::Utf8Error> for PropError {
fn from(_: core::str::Utf8Error) -> PropError {
PropError::Utf8Error
}
}
impl From<SliceReadError> for PropError {
fn from(e: SliceReadError) -> PropError {
PropError::SliceReadError(e)
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub enum SliceReadError {
UnexpectedEndOfInput,
}
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub enum VecWriteError {
NonContiguousWrite,
UnalignedWrite,
}