pub trait BufferedConvertHooks<D, E>{
type Error;
type DecodeError;
type EncodeError;
type DecodeHooks: BufferedDecodeHooks<D, Error = Self::DecodeError>;
type EncodeHooks: BufferedEncodeHooks<E, Error = Self::EncodeError>;
// Required methods
fn create_decode_hooks(
&self,
decode_codec: &D,
encode_codec: &E,
) -> Self::DecodeHooks;
fn create_encode_hooks(
&self,
decode_codec: &D,
encode_codec: &E,
) -> Self::EncodeHooks;
fn map_decode_error(&self, error: Self::DecodeError) -> Self::Error;
fn map_encode_error(&self, error: Self::EncodeError) -> Self::Error;
fn invalid_input_index(
&self,
decode_codec: &D,
index: usize,
input_len: usize,
) -> Self::Error;
// Provided method
fn reset(&mut self) { ... }
}Expand description
Policy hooks for crate::BufferedConvertEngine.
Convert hooks no longer own decoded pending values or the conversion loop. The engine owns source/target cursor state, retained decoded values, output capacity checks, and final progress reporting. Hooks only select the decode/encode policies used by the internal buffered engines and map their errors into one converter-level error type.
§Type Parameters
D: Source-side decode codec owned by the converter engine.E: Target-side encode codec owned by the converter engine.
Required Associated Types§
Sourcetype DecodeError
type DecodeError
Error type returned by the selected decode hooks.
Sourcetype EncodeError
type EncodeError
Error type returned by the selected encode hooks.
Sourcetype DecodeHooks: BufferedDecodeHooks<D, Error = Self::DecodeError>
type DecodeHooks: BufferedDecodeHooks<D, Error = Self::DecodeError>
Decode policy hooks used by the internal buffered decoder.
Sourcetype EncodeHooks: BufferedEncodeHooks<E, Error = Self::EncodeError>
type EncodeHooks: BufferedEncodeHooks<E, Error = Self::EncodeError>
Encode policy hooks used by the internal buffered encoder.
Required Methods§
Sourcefn create_decode_hooks(
&self,
decode_codec: &D,
encode_codec: &E,
) -> Self::DecodeHooks
fn create_decode_hooks( &self, decode_codec: &D, encode_codec: &E, ) -> Self::DecodeHooks
Sourcefn create_encode_hooks(
&self,
decode_codec: &D,
encode_codec: &E,
) -> Self::EncodeHooks
fn create_encode_hooks( &self, decode_codec: &D, encode_codec: &E, ) -> Self::EncodeHooks
Sourcefn map_decode_error(&self, error: Self::DecodeError) -> Self::Error
fn map_decode_error(&self, error: Self::DecodeError) -> Self::Error
Sourcefn map_encode_error(&self, error: Self::EncodeError) -> Self::Error
fn map_encode_error(&self, error: Self::EncodeError) -> Self::Error
Sourcefn invalid_input_index(
&self,
decode_codec: &D,
index: usize,
input_len: usize,
) -> Self::Error
fn invalid_input_index( &self, decode_codec: &D, index: usize, input_len: usize, ) -> Self::Error
Builds an error for a caller-supplied source input index outside the input slice.
The engine calls this hook before it reads source input. Keeping this construction in the hook lets converter adapters preserve their concrete error type without a separate public factory trait.
§Parameters
decode_codec: Source codec owned by the engine.index: Invalid absolute input index supplied by the caller.input_len: Length of the input slice.
§Returns
Returns the hook-specific invalid-input-index error.
Provided Methods§
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".