use core::num::NonZeroUsize;
use crate::MiscCodecError;
use qubit_codec::DecodeFailure;
#[derive(Debug)]
pub(crate) enum ParseError {
Incomplete {
required: NonZeroUsize,
},
Invalid(MiscCodecError),
}
impl From<MiscCodecError> for ParseError {
#[inline]
fn from(error: MiscCodecError) -> Self {
Self::Invalid(error)
}
}
impl ParseError {
#[inline]
pub(crate) fn into_decode_failure_with_consumed(
self,
consumed: NonZeroUsize,
) -> DecodeFailure<MiscCodecError> {
match self {
Self::Incomplete { required, .. } => {
DecodeFailure::incomplete(required)
}
Self::Invalid(error) => DecodeFailure::invalid(error, consumed),
}
}
}