use core::num::NonZeroUsize;
use qubit_codec::DecodeFailure;
use crate::MiscCodecError;
#[must_use]
#[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),
}
}
}