#[non_exhaustive]pub enum EncodeUnencodableAction<Value> {
Reject,
Skip,
Replace {
value: Value,
},
}Expand description
Action selected after a codec reports an unencodable input value.
Normal encodable values are handled by the encode engine itself. Hook implementations return this action only for values outside the codec’s encodable domain.
§Type Parameters
Value: Logical input value type accepted by the codec.
§Examples
use qubit_codec::engine::EncodeUnencodableAction;
let action = EncodeUnencodableAction::replace(0_u8);
assert!(matches!(action, EncodeUnencodableAction::Replace { value: 0 }));Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Reject
Reject the current input value.
The encode engine reports crate::TranscodeEncodeError::Unencodable
at the current input index.
Skip
Consume the current input value without producing output.
Replace
Encode a replacement value and consume the current input value.
The replacement must be encodable by the same codec. Returning an unencodable replacement is a hook contract violation and panics in the encode engine.
Fields
§
value: ValueReplacement value to encode.
Implementations§
Source§impl<Value> EncodeUnencodableAction<Value>
impl<Value> EncodeUnencodableAction<Value>
Trait Implementations§
Source§impl<Value: Clone> Clone for EncodeUnencodableAction<Value>
impl<Value: Clone> Clone for EncodeUnencodableAction<Value>
impl<Value: Copy> Copy for EncodeUnencodableAction<Value>
Source§impl<Value: Debug> Debug for EncodeUnencodableAction<Value>
impl<Value: Debug> Debug for EncodeUnencodableAction<Value>
impl<Value: Eq> Eq for EncodeUnencodableAction<Value>
Source§impl<Value: Hash> Hash for EncodeUnencodableAction<Value>
impl<Value: Hash> Hash for EncodeUnencodableAction<Value>
Source§impl<Value: PartialEq> PartialEq for EncodeUnencodableAction<Value>
impl<Value: PartialEq> PartialEq for EncodeUnencodableAction<Value>
impl<Value: PartialEq> StructuralPartialEq for EncodeUnencodableAction<Value>
Auto Trait Implementations§
impl<Value> Forget for EncodeUnencodableAction<Value>
impl<Value> Freeze for EncodeUnencodableAction<Value>where
Value: Freeze,
impl<Value> RefUnwindSafe for EncodeUnencodableAction<Value>where
Value: RefUnwindSafe,
impl<Value> Send for EncodeUnencodableAction<Value>where
Value: Send,
impl<Value> Sync for EncodeUnencodableAction<Value>where
Value: Sync,
impl<Value> Unpin for EncodeUnencodableAction<Value>where
Value: Unpin,
impl<Value> UnsafeUnpin for EncodeUnencodableAction<Value>where
Value: UnsafeUnpin,
impl<Value> UnwindSafe for EncodeUnencodableAction<Value>where
Value: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more