Skip to main content

CodecDecodeError

Enum CodecDecodeError 

Source
pub enum CodecDecodeError<E> {
    Decode {
        source: E,
        input_index: usize,
    },
    DecodeReset {
        source: E,
    },
    DecodeFlush {
        source: E,
    },
    Incomplete {
        input_index: usize,
        required_total: usize,
        available: usize,
    },
    TrailingInput {
        consumed: usize,
        remaining: usize,
    },
}
Expand description

Error reported by codec-backed value and buffered decoder adapters.

The wrapped codec remains responsible for domain-specific decode failures. This type adds adapter-level domain failures that cannot be represented by the wrapped codec itself, such as closed-input incomplete values and trailing units in exact-value decodes. Buffer index and capacity failures are represented by crate::TranscodeError.

Variants§

§

Decode

The wrapped codec reported a decode error.

Fields

§source: E

Error returned by the wrapped codec.

§input_index: usize

Absolute input index at which the adapter called the wrapped codec.

§

DecodeReset

The wrapped codec reported an error while resetting decode state.

Fields

§source: E

Error returned by crate::Codec::decode_reset.

§

DecodeFlush

The wrapped codec reported an error while flushing decode state.

Fields

§source: E

Error returned by crate::Codec::decode_flush.

§

Incomplete

The adapter could not safely call the wrapped codec because input ended.

Fields

§input_index: usize

Absolute input index where the incomplete value starts.

§required_total: usize

Total units required from input_index.

§available: usize

Units available from input_index.

§

TrailingInput

A whole-value decode succeeded but left trailing input units.

Fields

§consumed: usize

Units consumed by the decoded value.

§remaining: usize

Extra units left after the decoded value.

Implementations§

Source§

impl<E> CodecDecodeError<E>

Source

pub const fn decode(source: E, input_index: usize) -> Self

Creates an error wrapping a codec-specific decode error.

§Parameters
  • source: Error returned by the wrapped codec.
  • input_index: Absolute input index used for the codec call.
§Returns

Returns a codec decode error wrapper.

Source

pub const fn decode_reset(source: E) -> Self

Creates an error wrapping a codec-specific decode-reset error.

§Parameters
§Returns

Returns a codec decode-reset error wrapper.

Source

pub const fn decode_flush(source: E) -> Self

Creates an error wrapping a codec-specific decode-flush error.

§Parameters
§Returns

Returns a codec decode-flush error wrapper.

Source

pub const fn incomplete( input_index: usize, required_total: usize, available: usize, ) -> Self

Creates an adapter-level incomplete-input error.

§Parameters
  • input_index: Absolute input index where the incomplete value starts.
  • required_total: Total units required from input_index.
  • available: Units available from input_index.
§Returns

Returns an incomplete-input error.

Source

pub const fn trailing_input(consumed: usize, remaining: usize) -> Self

Creates a trailing-input error for whole-value decoding.

§Parameters
  • consumed: Units consumed by the decoded value.
  • remaining: Extra units left after the decoded value.
§Returns

Returns a trailing-input error.

Source

pub fn into_source(self) -> Option<E>

Extracts the wrapped codec source error, when this variant has one.

§Returns

Returns Some(source) for codec decode, reset, and flush failures. Returns None for adapter-only failures.

Source

pub const fn is_incomplete(&self) -> bool

Returns whether this error indicates an incomplete input prefix.

§Returns

Returns true only for the Incomplete variant.

Source

pub fn needed_additional(&self) -> Option<NonZeroUsize>

Returns the additional input units needed to make progress.

This is a convenience accessor over the Incomplete variant’s fields. Streaming callers can use it to determine how many more units they must buffer before retrying a decode.

§Returns

Returns Some(needed) for Incomplete errors, where needed is the strictly positive difference between the minimum units required and those already available. Returns None for all other variants.

Source

pub fn ensure_min_input( input_len: usize, input_index: usize, min_required: usize, ) -> Result<(), Self>

Validates that enough input units are available from input_index.

§Parameters
  • input_len: Length of the input slice.
  • input_index: Absolute input index where reading starts.
  • min_required: Minimum units required from input_index.
§Returns

Returns Ok(()) when at least min_required units are available.

§Errors

Returns an incomplete-input error when fewer than min_required units are available from input_index.

Source

pub fn ensure_no_trailing_input( consumed: usize, total: usize, ) -> Result<(), Self>

Validates that decoding consumed the entire input slice.

§Parameters
  • consumed: Units consumed by the decoded value.
  • total: Total units in the input slice.
§Returns

Returns Ok(()) when consumed == total.

§Errors

Returns a trailing-input error when extra units remain after the decoded value.

Trait Implementations§

Source§

impl<E: Clone> Clone for CodecDecodeError<E>

Source§

fn clone(&self) -> CodecDecodeError<E>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<E: Copy> Copy for CodecDecodeError<E>

Source§

impl<E: Debug> Debug for CodecDecodeError<E>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<E> Display for CodecDecodeError<E>
where E: Display,

Source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<E: Eq> Eq for CodecDecodeError<E>

Source§

impl<E> Error for CodecDecodeError<E>
where E: Error + 'static, Self: Debug + Display,

Source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§

fn description(&self) -> &str

👎Deprecated since 1.42.0:

use the Display impl or to_string()

1.0.0 · Source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

Source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more
Source§

impl<E: Hash> Hash for CodecDecodeError<E>

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl<E: PartialEq> PartialEq for CodecDecodeError<E>

Source§

fn eq(&self, other: &CodecDecodeError<E>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<E: PartialEq> StructuralPartialEq for CodecDecodeError<E>

Auto Trait Implementations§

§

impl<E> Freeze for CodecDecodeError<E>
where E: Freeze,

§

impl<E> RefUnwindSafe for CodecDecodeError<E>
where E: RefUnwindSafe,

§

impl<E> Send for CodecDecodeError<E>
where E: Send,

§

impl<E> Sync for CodecDecodeError<E>
where E: Sync,

§

impl<E> Unpin for CodecDecodeError<E>
where E: Unpin,

§

impl<E> UnsafeUnpin for CodecDecodeError<E>
where E: UnsafeUnpin,

§

impl<E> UnwindSafe for CodecDecodeError<E>
where E: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.