#[derive(Debug)]
pub enum StatParseError
{
CouldNotOpenFile(io::Error),
#[allow(missing_docs)]
NoOpenBracket,
#[allow(missing_docs)]
NoCharactersBeforeOpenBracket,
#[allow(missing_docs)]
NoSpaceBeforeOpenBracket,
#[allow(missing_docs)]
NoCloseBracket,
#[allow(missing_docs)]
NoCharactersAfterCloseBracket,
#[allow(missing_docs)]
NoSpaceAfterCloseBracket,
#[allow(missing_docs)]
MissingField
{
name: &'static str,
},
#[allow(missing_docs)]
NegativeValue,
#[allow(missing_docs)]
LargeValue,
#[allow(missing_docs)]
ZeroValue,
ParseNumber(ParseNumberError),
CouldNotParseCommandName(ObjectNameFromBytesError),
CouldNotParseChildStatus(OutOfRangeSignalNumberError),
BitSetAwareTryFromU16(BitSetAwareTryFromU16Error),
ObsoleteFieldValueWasNotZero
{
name: &'static str,
value: NonZeroU64,
}
}
impl Display for StatParseError
{
#[inline(always)]
fn fmt(&self, f: &mut Formatter) -> fmt::Result
{
Debug::fmt(self, f)
}
}
impl error::Error for StatParseError
{
#[inline(always)]
fn source(&self) -> Option<&(dyn error::Error + 'static)>
{
use self::StatParseError::*;
match self
{
&CouldNotOpenFile(ref cause) => Some(cause),
&NoOpenBracket => None,
&NoCharactersBeforeOpenBracket => None,
&NoSpaceBeforeOpenBracket => None,
&NoCloseBracket => None,
&NoCharactersAfterCloseBracket => None,
&NoSpaceAfterCloseBracket => None,
&NegativeValue => None,
&LargeValue => None,
&ZeroValue => None,
&MissingField { .. } => None,
&ParseNumber(ref cause) => Some(cause),
&CouldNotParseCommandName(ref cause) => Some(cause),
&CouldNotParseChildStatus(ref cause) => Some(cause),
&BitSetAwareTryFromU16(ref cause) => Some(cause),
&ObsoleteFieldValueWasNotZero { .. } => None,
}
}
}
impl From<io::Error> for StatParseError
{
#[inline(always)]
fn from(error: io::Error) -> Self
{
StatParseError::CouldNotOpenFile(error)
}
}
impl From<ParseNumberError> for StatParseError
{
#[inline(always)]
fn from(error: ParseNumberError) -> Self
{
StatParseError::ParseNumber(error)
}
}
impl From<ObjectNameFromBytesError> for StatParseError
{
#[inline(always)]
fn from(error: ObjectNameFromBytesError) -> Self
{
StatParseError::CouldNotParseCommandName(error)
}
}
impl From<OutOfRangeSignalNumberError> for StatParseError
{
#[inline(always)]
fn from(error: OutOfRangeSignalNumberError) -> Self
{
StatParseError::CouldNotParseChildStatus(error)
}
}
impl From<BitSetAwareTryFromU16Error> for StatParseError
{
#[inline(always)]
fn from(error: BitSetAwareTryFromU16Error) -> Self
{
StatParseError::BitSetAwareTryFromU16(error)
}
}