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.
§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: TranscodeFailureFramework 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.
Implementations§
Source§impl<DE, EE, V> TranscodeConvertError<DE, EE, V>
impl<DE, EE, V> TranscodeConvertError<DE, EE, V>
Sourcepub const fn decode_domain_reset(source: DE) -> Self
pub const fn decode_domain_reset(source: DE) -> Self
Sourcepub const fn decode_domain_main(source: DE, input_index: usize) -> Self
pub const fn decode_domain_main(source: DE, input_index: usize) -> Self
Sourcepub const fn decode_domain_main_with_consumed(
source: DE,
input_index: usize,
input_consumed: Option<NonZeroUsize>,
) -> Self
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: Absolute source position of the failed operation.input_consumed:Somerecords invalid units consumed;Nonemeans unknown.
§Returns
Returns a source-domain main-phase error retaining consumption context.
Sourcepub const fn decode_domain_finish(source: DE) -> Self
pub const fn decode_domain_finish(source: DE) -> Self
Sourcepub const fn encode_domain_reset(source: EE) -> Self
pub const fn encode_domain_reset(source: EE) -> Self
Sourcepub const fn encode_domain_main(source: EE, input_index: usize) -> Self
pub const fn encode_domain_main(source: EE, input_index: usize) -> Self
Sourcepub const fn encode_domain_finish(source: EE) -> Self
pub const fn encode_domain_finish(source: EE) -> Self
Sourcepub fn unencodable(input_index: usize, value: V) -> Self
pub fn unencodable(input_index: usize, value: V) -> Self
Sourcepub const fn unencodable_without_context(input_index: usize) -> Self
pub const fn unencodable_without_context(input_index: usize) -> Self
Sourcepub fn from_encode_error_with_value(
error: TranscodeEncodeError<EE, V>,
fallback_value: V,
) -> Self
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.
Sourcepub const fn failure_ref(&self) -> Option<&TranscodeFailure>
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.
Sourcepub const fn unencodable_ref(&self) -> Option<(usize, Option<&V>)>
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.
Sourcepub fn map_decode_domain<F, T>(self, f: F) -> TranscodeConvertError<T, EE, V>where
F: FnOnce(DE) -> T,
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 fromDEtoT.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.
Sourcepub fn map_encode_domain<F, T>(self, f: F) -> TranscodeConvertError<DE, T, V>where
F: FnOnce(EE) -> T,
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 fromEEtoT.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.
Sourcepub fn map_value<F, W>(self, f: F) -> TranscodeConvertError<DE, EE, W>where
F: FnOnce(V) -> W,
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 fromVtoW.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, EE, V> Display for TranscodeConvertError<DE, EE, V>
impl<DE, EE, V> Display for TranscodeConvertError<DE, EE, V>
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,
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)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()