#[derive(Debug)]
pub enum StatisticsParseError
{
Input(io::Error),
DuplicateStatisticName
{
name: Vec<u8>,
},
MissingStatisticValue
{
name: Vec<u8>,
},
InvalidStatisticValue
{
name: Vec<u8>,
value: Vec<u8>,
cause: ParseNumberError,
},
NotABooleanValue
{
name: Vec<u8>,
value: usize,
},
NotAnU32Value
{
name: Vec<u8>,
value: usize,
},
MissingStatistic
{
#[allow(missing_docs)]
name: &'static [u8]
},
MissingOneOrMoreStatistics,
}
impl Display for StatisticsParseError
{
#[inline(always)]
fn fmt(&self, f: &mut Formatter) -> fmt::Result
{
Debug::fmt(self, f)
}
}
impl Error for StatisticsParseError
{
#[inline(always)]
fn source(&self) -> Option<&(dyn Error + 'static)>
{
use self::StatisticsParseError::*;
match self
{
&Input(ref source) => Some(source),
&DuplicateStatisticName { .. } => None,
&MissingStatisticValue { .. } => None,
&InvalidStatisticValue { ref cause, .. } => Some(cause),
&NotABooleanValue { .. } => None,
&NotAnU32Value { .. } => None,
&MissingStatistic { .. } => None,
&MissingOneOrMoreStatistics => None,
}
}
}
impl From<io::Error> for StatisticsParseError
{
#[inline(always)]
fn from(value: io::Error) -> Self
{
StatisticsParseError::Input(value)
}
}