#[derive(Debug,)]
pub enum MemoryInformationParseError
{
CouldNotOpenFile(io::Error),
NoValue
{
zero_based_line_number: usize,
},
InvalidUnit
{
zero_based_line_number: usize,
},
TooMuchWhitespace
{
zero_based_line_number: usize,
},
BadValue
{
zero_based_line_number: usize,
cause: ParseNumberError,
},
DuplicateMemoryInformation
{
zero_based_line_number: usize,
},
}
impl Display for MemoryInformationParseError
{
#[inline(always)]
fn fmt(&self, f: &mut Formatter) -> fmt::Result
{
<MemoryInformationParseError as Debug>::fmt(self, f)
}
}
impl error::Error for MemoryInformationParseError
{
#[inline(always)]
fn source(&self) -> Option<&(dyn error::Error + 'static)>
{
use self::MemoryInformationParseError::*;
match self
{
&CouldNotOpenFile(ref cause) => Some(cause),
&NoValue { .. } => None,
&InvalidUnit { .. } => None,
&TooMuchWhitespace { .. } => None,
&BadValue { ref cause, .. } => Some(cause),
&DuplicateMemoryInformation { .. } => None,
}
}
}
impl From<io::Error> for MemoryInformationParseError
{
#[inline(always)]
fn from(error: io::Error) -> Self
{
MemoryInformationParseError::CouldNotOpenFile(error)
}
}