use super::{
transcode_decode_hooks::TranscodeDecodeHooks,
transcode_encode_hooks::TranscodeEncodeHooks,
};
use crate::Codec;
pub trait TranscodeConvertHooks<D, E>
where
D: Codec,
E: Codec<Value = D::Value>,
{
type Error;
type DecodeError;
type EncodeError;
type DecodeHooks: TranscodeDecodeHooks<D, Error = Self::DecodeError>;
type EncodeHooks: TranscodeEncodeHooks<E, Error = Self::EncodeError>;
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;
#[inline(always)]
fn reset(&mut self) {}
}