smxdasm 0.2.0

A library for disassembling SMX
Documentation
 use std::fmt::{Display, Formatter};

use std::io::Error as IoError;

pub type Result<T> = std::result::Result<T, Error>;

#[derive(Debug)]
pub enum Error {
    Io(IoError),

    InvalidMagic,
    InvalidSize,
    InvalidOffset,
    InvalidIndex,
    OffsetOverflow,
    SizeOverflow,

    Other(&'static str),
}

impl From<IoError> for Error {
    fn from(err: IoError) -> Error {
        Error::Io(err)
    }
}

impl Display for Error {
    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
        match *self {
            Error::Io(ref inner) => inner.fmt(f),
            Error::InvalidMagic => write!(f, "Invalid magic header"),
            Error::InvalidSize => write!(f, "Invalid size"),
            Error::InvalidOffset => write!(f, "Invalid offset"),
            Error::InvalidIndex => write!(f, "Invalid index"),
            Error::OffsetOverflow => write!(f, "Offset overflow"),
            Error::SizeOverflow => write!(f, "Size overflow"),
            Error::Other(msg) => write!(f, "{}", msg),
        }
    }
}