Skip to main content

TranscodeConvertError

Enum TranscodeConvertError 

Source
pub enum TranscodeConvertError<DE, EE, V> {
    Failure(TranscodeFailure),
    DecodeDomain(TranscodeDomainError<DE>),
    EncodeDomain(TranscodeDomainError<EE>),
    Unencodable {
        input_index: usize,
        value: Option<V>,
    },
}
Expand description

Error reported by a unit-to-unit transcode conversion.

§Type Parameters

  • DE: Source decoder domain error.
  • EE: Target encoder domain error.
  • V: Owned intermediate value retained when encoding is rejected.

For values emitted by the source codec’s decode reset or finish phase, the converter uses placeholder input index 0 in encode contexts and errors. Such values have no source-unit position, and index 0 cannot distinguish them from a value decoded at source index 0. Ordinary decoded values retain their index in the input slice supplied to the decode call that produced them. A pending value keeps that index across calls; it is not rebased to a later input slice and is not a whole-stream offset. The retained index may be outside the bounds of a later input slice. Error phases describe the underlying codec operation, so encoding a lifecycle-generated value uses the main encode path even during converter reset or finish.

§Examples

use qubit_codec::TranscodeConvertError;

let error = TranscodeConvertError::<&str, &str, u8>::unencodable(3, 42);
assert_eq!(error.unencodable_ref(), Some((3, Some(&42))));
assert_eq!(error.failure_ref(), None);

Variants§

§

Failure(TranscodeFailure)

Framework-level transcode failure.

Tuple Fields

§0: TranscodeFailure

Framework contract, capacity, or lifecycle failure.

§

DecodeDomain(TranscodeDomainError<DE>)

Source-side domain error.

Tuple Fields

§0: TranscodeDomainError<DE>

Owned source error with its lifecycle phase and input context.

§

EncodeDomain(TranscodeDomainError<EE>)

Target-side domain error.

Tuple Fields

§0: TranscodeDomainError<EE>

Owned target error with its lifecycle phase and input context.

§

Unencodable

The decoded intermediate value cannot be encoded by the target codec and policy.

Fields

§input_index: usize

Source input index of the value being encoded. Lifecycle-generated converter values use placeholder 0 because they have no source-unit position; ordinary decoded values retain their index in the input slice supplied to the decode call that produced them, including when kept pending across calls.

§value: Option<V>

Some retains the decoded intermediate value; None means value context was unavailable or intentionally omitted.

Implementations§

Source§

impl<DE, EE, V> TranscodeConvertError<DE, EE, V>

Source

pub const fn decode_domain_reset(source: DE) -> Self

Creates a source reset-phase domain-specific converter error.

§Parameters
  • source: Owned source error raised during reset.
§Returns

Returns a source-domain reset error.

Source

pub const fn decode_domain_main(source: DE, input_index: usize) -> Self

Creates a source main-phase domain-specific converter error.

§Parameters
  • source: Owned source error raised during conversion.
  • input_index: Absolute source position of the failed operation.
§Returns

Returns a source-domain main-phase error at the supplied input index.

Source

pub const fn decode_domain_main_with_consumed( source: DE, input_index: usize, input_consumed: Option<NonZeroUsize>, ) -> Self

Creates a source main-phase converter error with decode consumption context.

§Parameters
  • source: Owned source error raised during conversion.
  • input_index: Source index for the failed operation. For a lifecycle-generated converter value, use placeholder 0 because it has no source-unit position; an ordinary decoded value retains its index in the slice supplied to the decode call that produced it, even when kept pending across calls.
  • input_consumed: Some records invalid units consumed; None means unknown.
§Returns

Returns a source-domain main-phase error retaining consumption context.

Source

pub const fn decode_domain_finish(source: DE) -> Self

Creates a source finish-phase domain-specific converter error.

§Parameters
  • source: Owned source error raised during finalization.
§Returns

Returns a source-domain finish error.

Source

pub const fn encode_domain_reset(source: EE) -> Self

Creates a target reset-phase domain-specific converter error.

§Parameters
  • source: Owned target error raised during reset.
§Returns

Returns a target-domain reset error.

Source

pub const fn encode_domain_main(source: EE, input_index: usize) -> Self

Creates a target main-phase domain-specific converter error.

§Parameters
  • source: Owned target error raised during conversion.
  • input_index: Source index for the failed operation. For a lifecycle-generated converter value, use placeholder 0 because it has no source-unit position; an ordinary decoded value retains its index in the slice supplied to the decode call that produced it, even when kept pending across calls.
§Returns

Returns a target-domain main-phase error at the supplied input index. The main phase identifies the underlying encode operation, including when a converter invokes it during reset or finish.

Source

pub const fn encode_domain_finish(source: EE) -> Self

Creates a target finish-phase domain-specific converter error.

§Parameters
  • source: Owned target error raised during finalization.
§Returns

Returns a target-domain finish error.

Source

pub fn unencodable(input_index: usize, value: V) -> Self

Creates an unencodable intermediate-value error with value context.

§Parameters
  • input_index: Source index of the rejected value. Lifecycle-generated converter values use placeholder 0 because they have no source-unit position; an ordinary decoded value retains its index in the slice supplied to the decode call that produced it, even when kept pending across calls.
  • value: Intermediate value moved into the error for recovery.
§Returns

Returns an unencodable error owning Some(value).

Source

pub const fn unencodable_without_context(input_index: usize) -> Self

Creates an unencodable intermediate-value error without value context.

§Parameters
  • input_index: Source index of the rejected value. Lifecycle-generated converter values use placeholder 0 because they have no source-unit position; an ordinary decoded value retains its index in the slice supplied to the decode call that produced it, even when kept pending across calls.
§Returns

Returns an unencodable error with absent (None) value context.

Source

pub fn from_encode_error_with_value( error: TranscodeEncodeError<EE, V>, fallback_value: V, ) -> Self

Converts an encode error into a converter error while adding fallback value context to unencodable errors that lack it.

§Parameters
  • error: Owned target-side error to convert.
  • fallback_value: Value moved into absent context, or dropped if not needed.
§Returns

Returns the converted error, adding the fallback only when unencodable value context is absent.

Source

pub const fn failure_ref(&self) -> Option<&TranscodeFailure>

Returns the framework failure carried by this error.

§Returns

Returns Some for a framework failure, or None for domain and unencodable errors.

Source

pub const fn unencodable_ref(&self) -> Option<(usize, Option<&V>)>

Borrows the unencodable value context carried by this error.

§Returns

Returns Some((index, value)) for an unencodable error and None otherwise. The inner Some borrows retained value context; inner None means it is absent.

Source

pub fn map_decode_domain<F, T>(self, f: F) -> TranscodeConvertError<T, EE, V>
where F: FnOnce(DE) -> T,

Maps the source domain error while preserving other errors.

§Type Parameters
  • F: One-shot transformation from DE to T.
  • T: Replacement payload type.
§Parameters
  • f: Invoked only for a source-domain error; otherwise dropped without being called.
§Returns

Returns an owned error preserving all other variants and positional context.

§Panics

Propagates a panic if the invoked transformation panics.

Source

pub fn map_encode_domain<F, T>(self, f: F) -> TranscodeConvertError<DE, T, V>
where F: FnOnce(EE) -> T,

Maps the target domain error while preserving other errors.

§Type Parameters
  • F: One-shot transformation from EE to T.
  • T: Replacement payload type.
§Parameters
  • f: Invoked only for a target-domain error; otherwise dropped without being called.
§Returns

Returns an owned error preserving all other variants and positional context.

§Panics

Propagates a panic if the invoked transformation panics.

Source

pub fn map_value<F, W>(self, f: F) -> TranscodeConvertError<DE, EE, W>
where F: FnOnce(V) -> W,

Maps value context carried by unencodable-value errors.

§Type Parameters
  • F: One-shot transformation from V to W.
  • W: Replacement payload type.
§Parameters
  • f: Invoked only for present unencodable value context; otherwise dropped without being called.
§Returns

Returns an owned error preserving all other variants and positional context.

§Panics

Propagates a panic if the invoked transformation panics.

Trait Implementations§

Source§

impl<DE: Clone, EE: Clone, V: Clone> Clone for TranscodeConvertError<DE, EE, V>

Source§

fn clone(&self) -> Self

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<DE: Debug, EE: Debug, V: Debug> Debug for TranscodeConvertError<DE, EE, V>

Source§

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

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

impl<DE, EE, V> Display for TranscodeConvertError<DE, EE, V>

Source§

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

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

impl<DE: Eq, EE: Eq, V: Eq> Eq for TranscodeConvertError<DE, EE, V>

Source§

impl<DE, EE, V> Error for TranscodeConvertError<DE, EE, V>
where TranscodeDomainError<DE>: Error + 'static, TranscodeDomainError<EE>: 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<DE, EE, V> From<CapacityError> for TranscodeConvertError<DE, EE, V>

Source§

fn from(error: CapacityError) -> Self

Converts capacity planning errors into transcode framework errors.

§Parameters
  • error: Owned failure to convert without discarding its context.
§Returns

Returns the corresponding converter variant preserving the original cause.

Source§

impl<DE, EE, V> From<TranscodeDecodeError<DE>> for TranscodeConvertError<DE, EE, V>

Source§

fn from(error: TranscodeDecodeError<DE>) -> Self

Converts a source-side decode error into a converter error.

§Parameters
  • error: Owned failure to convert without discarding its context.
§Returns

Returns the corresponding converter variant preserving the original cause.

Source§

impl<DE, EE, V> From<TranscodeEncodeError<EE, V>> for TranscodeConvertError<DE, EE, V>

Source§

fn from(error: TranscodeEncodeError<EE, V>) -> Self

Converts a target-side encode error into a converter error.

§Parameters
  • error: Owned failure to convert without discarding its context.
§Returns

Returns the corresponding converter variant preserving the original cause.

Source§

impl<DE, EE, V> From<TranscodeFailure> for TranscodeConvertError<DE, EE, V>

Source§

fn from(source: TranscodeFailure) -> Self

Converts to this type from the input type.
Source§

impl<DE: Hash, EE: Hash, V: Hash> Hash for TranscodeConvertError<DE, EE, V>

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<DE: PartialEq, EE: PartialEq, V: PartialEq> PartialEq for TranscodeConvertError<DE, EE, V>

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl<DE: PartialEq, EE: PartialEq, V: PartialEq> StructuralPartialEq for TranscodeConvertError<DE, EE, V>

Auto Trait Implementations§

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 = !

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

fn try_from(value: U) -> Result<T, !>

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.