Skip to main content

BufferedConvertHooks

Trait BufferedConvertHooks 

Source
pub trait BufferedConvertHooks<D, E>
where D: Codec, E: Codec<Value = D::Value>,
{ 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§

Source

type Error

Error type returned by the buffered converter.

Source

type DecodeError

Error type returned by the selected decode hooks.

Source

type EncodeError

Error type returned by the selected encode hooks.

Source

type DecodeHooks: BufferedDecodeHooks<D, Error = Self::DecodeError>

Decode policy hooks used by the internal buffered decoder.

Source

type EncodeHooks: BufferedEncodeHooks<E, Error = Self::EncodeError>

Encode policy hooks used by the internal buffered encoder.

Required Methods§

Source

fn create_decode_hooks( &self, decode_codec: &D, encode_codec: &E, ) -> Self::DecodeHooks

Creates decode policy hooks for the internal buffered decoder.

§Parameters
  • decode_codec: Source codec owned by the converter engine.
  • encode_codec: Target codec owned by the converter engine.
§Returns

Returns the decode hooks used by the internal buffered decoder.

Source

fn create_encode_hooks( &self, decode_codec: &D, encode_codec: &E, ) -> Self::EncodeHooks

Creates encode policy hooks for the internal buffered encoder.

§Parameters
  • decode_codec: Source codec owned by the converter engine.
  • encode_codec: Target codec owned by the converter engine.
§Returns

Returns the encode hooks used by the internal buffered encoder.

Source

fn map_decode_error(&self, error: Self::DecodeError) -> Self::Error

Maps a decode-engine error into the converter error type.

§Parameters
  • error: Error returned by the selected decode hooks.
§Returns

Returns the converter-level error.

Source

fn map_encode_error(&self, error: Self::EncodeError) -> Self::Error

Maps an encode-engine error into the converter error type.

§Parameters
  • error: Error returned by the selected encode hooks.
§Returns

Returns the converter-level error.

Source

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§

Source

fn reset(&mut self)

Resets conversion-level hook-owned state.

The common engine clears pending decoded values and resets internal decode/encode engines separately.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§