Decode

Trait Decode 

Source
pub trait Decode<'a> {
    type Value: Sized;

    // Required methods
    fn decode(buf: &'a [u8]) -> Result<(Self::Value, &'a [u8]), Error>;
    fn decode_with_format(
        format: Format,
        buf: &'a [u8],
    ) -> Result<(Self::Value, &'a [u8]), Error>;
}
Expand description

A type that can be decoded from a MessagePack byte slice.

Required Associated Types§

Source

type Value: Sized

The materialised value type.

Required Methods§

Source

fn decode(buf: &'a [u8]) -> Result<(Self::Value, &'a [u8]), Error>

Decode a value from the front of buf, returning the value and the remaining slice.

Source

fn decode_with_format( format: Format, buf: &'a [u8], ) -> Result<(Self::Value, &'a [u8]), Error>

Decode a value assuming the leading MessagePack format has already been read by the caller. Implementations must validate that format is appropriate for the type and return an error otherwise.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<'a> Decode<'a> for &'a str

Source§

type Value = &'a str

Source§

fn decode(buf: &'a [u8]) -> Result<(Self::Value, &'a [u8]), Error>

Source§

fn decode_with_format( format: Format, buf: &'a [u8], ) -> Result<(Self::Value, &'a [u8]), Error>

Source§

impl<'a> Decode<'a> for &'a [u8]

Source§

type Value = &'a [u8]

Source§

fn decode(buf: &'a [u8]) -> Result<(Self::Value, &'a [u8]), Error>

Source§

fn decode_with_format( format: Format, buf: &'a [u8], ) -> Result<(Self::Value, &'a [u8]), Error>

Source§

impl<'a> Decode<'a> for bool

Source§

type Value = bool

Source§

fn decode(buf: &'a [u8]) -> Result<(Self::Value, &'a [u8]), Error>

Source§

fn decode_with_format( format: Format, buf: &'a [u8], ) -> Result<(Self::Value, &'a [u8]), Error>

Source§

impl<'a> Decode<'a> for f32

Source§

type Value = f32

Source§

fn decode(buf: &[u8]) -> Result<(Self::Value, &[u8]), Error>

Source§

fn decode_with_format( format: Format, buf: &[u8], ) -> Result<(Self::Value, &[u8]), Error>

Source§

impl<'a> Decode<'a> for f64

Source§

type Value = f64

Source§

fn decode(buf: &[u8]) -> Result<(Self::Value, &[u8]), Error>

Source§

fn decode_with_format( format: Format, buf: &[u8], ) -> Result<(Self::Value, &[u8]), Error>

Source§

impl<'a> Decode<'a> for i8

Source§

type Value = i8

Source§

fn decode(buf: &'a [u8]) -> Result<(Self::Value, &'a [u8]), Error>

Source§

fn decode_with_format( format: Format, buf: &'a [u8], ) -> Result<(Self::Value, &'a [u8]), Error>

Source§

impl<'a> Decode<'a> for i16

Source§

type Value = i16

Source§

fn decode(buf: &'a [u8]) -> Result<(Self::Value, &'a [u8]), Error>

Source§

fn decode_with_format( format: Format, buf: &'a [u8], ) -> Result<(Self::Value, &'a [u8]), Error>

Source§

impl<'a> Decode<'a> for i32

Source§

type Value = i32

Source§

fn decode(buf: &'a [u8]) -> Result<(Self::Value, &'a [u8]), Error>

Source§

fn decode_with_format( format: Format, buf: &'a [u8], ) -> Result<(Self::Value, &'a [u8]), Error>

Source§

impl<'a> Decode<'a> for i64

Source§

type Value = i64

Source§

fn decode(buf: &'a [u8]) -> Result<(Self::Value, &'a [u8]), Error>

Source§

fn decode_with_format( format: Format, buf: &'a [u8], ) -> Result<(Self::Value, &'a [u8]), Error>

Source§

impl<'a> Decode<'a> for i128

Source§

type Value = i128

Source§

fn decode(buf: &'a [u8]) -> Result<(Self::Value, &'a [u8]), Error>

Source§

fn decode_with_format( format: Format, buf: &'a [u8], ) -> Result<(Self::Value, &'a [u8]), Error>

Source§

impl<'a> Decode<'a> for isize

Source§

type Value = isize

Source§

fn decode(buf: &'a [u8]) -> Result<(Self::Value, &'a [u8]), Error>

Source§

fn decode_with_format( format: Format, buf: &'a [u8], ) -> Result<(Self::Value, &'a [u8]), Error>

Source§

impl<'a> Decode<'a> for u8

Source§

type Value = u8

Source§

fn decode(buf: &'a [u8]) -> Result<(Self::Value, &'a [u8]), Error>

Source§

fn decode_with_format( format: Format, buf: &'a [u8], ) -> Result<(Self::Value, &'a [u8]), Error>

Source§

impl<'a> Decode<'a> for u16

Source§

type Value = u16

Source§

fn decode(buf: &'a [u8]) -> Result<(Self::Value, &'a [u8]), Error>

Source§

fn decode_with_format( format: Format, buf: &'a [u8], ) -> Result<(Self::Value, &'a [u8]), Error>

Source§

impl<'a> Decode<'a> for u32

Source§

type Value = u32

Source§

fn decode(buf: &'a [u8]) -> Result<(Self::Value, &'a [u8]), Error>

Source§

fn decode_with_format( format: Format, buf: &'a [u8], ) -> Result<(Self::Value, &'a [u8]), Error>

Source§

impl<'a> Decode<'a> for u64

Source§

type Value = u64

Source§

fn decode(buf: &'a [u8]) -> Result<(Self::Value, &'a [u8]), Error>

Source§

fn decode_with_format( format: Format, buf: &'a [u8], ) -> Result<(Self::Value, &'a [u8]), Error>

Source§

impl<'a> Decode<'a> for u128

Source§

type Value = u128

Source§

fn decode(buf: &'a [u8]) -> Result<(Self::Value, &'a [u8]), Error>

Source§

fn decode_with_format( format: Format, buf: &'a [u8], ) -> Result<(Self::Value, &'a [u8]), Error>

Source§

impl<'a> Decode<'a> for ()

Source§

type Value = ()

Source§

fn decode(buf: &'a [u8]) -> Result<(Self::Value, &'a [u8]), Error>

Source§

fn decode_with_format( format: Format, buf: &'a [u8], ) -> Result<(Self::Value, &'a [u8]), Error>

Source§

impl<'a> Decode<'a> for usize

Source§

type Value = usize

Source§

fn decode(buf: &'a [u8]) -> Result<(Self::Value, &'a [u8]), Error>

Source§

fn decode_with_format( format: Format, buf: &'a [u8], ) -> Result<(Self::Value, &'a [u8]), Error>

Source§

impl<'a, V0> Decode<'a> for (V0,)
where V0: Decode<'a>,

Source§

type Value = (<V0 as Decode<'a>>::Value,)

Source§

fn decode(buf: &'a [u8]) -> Result<(Self::Value, &'a [u8]), Error>

Source§

fn decode_with_format( format: Format, buf: &'a [u8], ) -> Result<(Self::Value, &'a [u8]), Error>

Source§

impl<'a, V0, V1> Decode<'a> for (V0, V1)
where V0: Decode<'a>, V1: Decode<'a>,

Source§

type Value = (<V0 as Decode<'a>>::Value, <V1 as Decode<'a>>::Value)

Source§

fn decode(buf: &'a [u8]) -> Result<(Self::Value, &'a [u8]), Error>

Source§

fn decode_with_format( format: Format, buf: &'a [u8], ) -> Result<(Self::Value, &'a [u8]), Error>

Source§

impl<'a, V0, V1, V2> Decode<'a> for (V0, V1, V2)
where V0: Decode<'a>, V1: Decode<'a>, V2: Decode<'a>,

Source§

type Value = (<V0 as Decode<'a>>::Value, <V1 as Decode<'a>>::Value, <V2 as Decode<'a>>::Value)

Source§

fn decode(buf: &'a [u8]) -> Result<(Self::Value, &'a [u8]), Error>

Source§

fn decode_with_format( format: Format, buf: &'a [u8], ) -> Result<(Self::Value, &'a [u8]), Error>

Source§

impl<'a, V0, V1, V2, V3> Decode<'a> for (V0, V1, V2, V3)
where V0: Decode<'a>, V1: Decode<'a>, V2: Decode<'a>, V3: Decode<'a>,

Source§

type Value = (<V0 as Decode<'a>>::Value, <V1 as Decode<'a>>::Value, <V2 as Decode<'a>>::Value, <V3 as Decode<'a>>::Value)

Source§

fn decode(buf: &'a [u8]) -> Result<(Self::Value, &'a [u8]), Error>

Source§

fn decode_with_format( format: Format, buf: &'a [u8], ) -> Result<(Self::Value, &'a [u8]), Error>

Source§

impl<'a, V0, V1, V2, V3, V4> Decode<'a> for (V0, V1, V2, V3, V4)
where V0: Decode<'a>, V1: Decode<'a>, V2: Decode<'a>, V3: Decode<'a>, V4: Decode<'a>,

Source§

type Value = (<V0 as Decode<'a>>::Value, <V1 as Decode<'a>>::Value, <V2 as Decode<'a>>::Value, <V3 as Decode<'a>>::Value, <V4 as Decode<'a>>::Value)

Source§

fn decode(buf: &'a [u8]) -> Result<(Self::Value, &'a [u8]), Error>

Source§

fn decode_with_format( format: Format, buf: &'a [u8], ) -> Result<(Self::Value, &'a [u8]), Error>

Source§

impl<'a, V0, V1, V2, V3, V4, V5> Decode<'a> for (V0, V1, V2, V3, V4, V5)
where V0: Decode<'a>, V1: Decode<'a>, V2: Decode<'a>, V3: Decode<'a>, V4: Decode<'a>, V5: Decode<'a>,

Source§

type Value = (<V0 as Decode<'a>>::Value, <V1 as Decode<'a>>::Value, <V2 as Decode<'a>>::Value, <V3 as Decode<'a>>::Value, <V4 as Decode<'a>>::Value, <V5 as Decode<'a>>::Value)

Source§

fn decode(buf: &'a [u8]) -> Result<(Self::Value, &'a [u8]), Error>

Source§

fn decode_with_format( format: Format, buf: &'a [u8], ) -> Result<(Self::Value, &'a [u8]), Error>

Source§

impl<'a, V0, V1, V2, V3, V4, V5, V6> Decode<'a> for (V0, V1, V2, V3, V4, V5, V6)
where V0: Decode<'a>, V1: Decode<'a>, V2: Decode<'a>, V3: Decode<'a>, V4: Decode<'a>, V5: Decode<'a>, V6: Decode<'a>,

Source§

type Value = (<V0 as Decode<'a>>::Value, <V1 as Decode<'a>>::Value, <V2 as Decode<'a>>::Value, <V3 as Decode<'a>>::Value, <V4 as Decode<'a>>::Value, <V5 as Decode<'a>>::Value, <V6 as Decode<'a>>::Value)

Source§

fn decode(buf: &'a [u8]) -> Result<(Self::Value, &'a [u8]), Error>

Source§

fn decode_with_format( format: Format, buf: &'a [u8], ) -> Result<(Self::Value, &'a [u8]), Error>

Source§

impl<'a, V0, V1, V2, V3, V4, V5, V6, V7> Decode<'a> for (V0, V1, V2, V3, V4, V5, V6, V7)
where V0: Decode<'a>, V1: Decode<'a>, V2: Decode<'a>, V3: Decode<'a>, V4: Decode<'a>, V5: Decode<'a>, V6: Decode<'a>, V7: Decode<'a>,

Source§

type Value = (<V0 as Decode<'a>>::Value, <V1 as Decode<'a>>::Value, <V2 as Decode<'a>>::Value, <V3 as Decode<'a>>::Value, <V4 as Decode<'a>>::Value, <V5 as Decode<'a>>::Value, <V6 as Decode<'a>>::Value, <V7 as Decode<'a>>::Value)

Source§

fn decode(buf: &'a [u8]) -> Result<(Self::Value, &'a [u8]), Error>

Source§

fn decode_with_format( format: Format, buf: &'a [u8], ) -> Result<(Self::Value, &'a [u8]), Error>

Source§

impl<'a, V0, V1, V2, V3, V4, V5, V6, V7, V8> Decode<'a> for (V0, V1, V2, V3, V4, V5, V6, V7, V8)
where V0: Decode<'a>, V1: Decode<'a>, V2: Decode<'a>, V3: Decode<'a>, V4: Decode<'a>, V5: Decode<'a>, V6: Decode<'a>, V7: Decode<'a>, V8: Decode<'a>,

Source§

type Value = (<V0 as Decode<'a>>::Value, <V1 as Decode<'a>>::Value, <V2 as Decode<'a>>::Value, <V3 as Decode<'a>>::Value, <V4 as Decode<'a>>::Value, <V5 as Decode<'a>>::Value, <V6 as Decode<'a>>::Value, <V7 as Decode<'a>>::Value, <V8 as Decode<'a>>::Value)

Source§

fn decode(buf: &'a [u8]) -> Result<(Self::Value, &'a [u8]), Error>

Source§

fn decode_with_format( format: Format, buf: &'a [u8], ) -> Result<(Self::Value, &'a [u8]), Error>

Source§

impl<'a, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9> Decode<'a> for (V0, V1, V2, V3, V4, V5, V6, V7, V8, V9)
where V0: Decode<'a>, V1: Decode<'a>, V2: Decode<'a>, V3: Decode<'a>, V4: Decode<'a>, V5: Decode<'a>, V6: Decode<'a>, V7: Decode<'a>, V8: Decode<'a>, V9: Decode<'a>,

Source§

type Value = (<V0 as Decode<'a>>::Value, <V1 as Decode<'a>>::Value, <V2 as Decode<'a>>::Value, <V3 as Decode<'a>>::Value, <V4 as Decode<'a>>::Value, <V5 as Decode<'a>>::Value, <V6 as Decode<'a>>::Value, <V7 as Decode<'a>>::Value, <V8 as Decode<'a>>::Value, <V9 as Decode<'a>>::Value)

Source§

fn decode(buf: &'a [u8]) -> Result<(Self::Value, &'a [u8]), Error>

Source§

fn decode_with_format( format: Format, buf: &'a [u8], ) -> Result<(Self::Value, &'a [u8]), Error>

Source§

impl<'a, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10> Decode<'a> for (V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10)
where V0: Decode<'a>, V1: Decode<'a>, V2: Decode<'a>, V3: Decode<'a>, V4: Decode<'a>, V5: Decode<'a>, V6: Decode<'a>, V7: Decode<'a>, V8: Decode<'a>, V9: Decode<'a>, V10: Decode<'a>,

Source§

type Value = (<V0 as Decode<'a>>::Value, <V1 as Decode<'a>>::Value, <V2 as Decode<'a>>::Value, <V3 as Decode<'a>>::Value, <V4 as Decode<'a>>::Value, <V5 as Decode<'a>>::Value, <V6 as Decode<'a>>::Value, <V7 as Decode<'a>>::Value, <V8 as Decode<'a>>::Value, <V9 as Decode<'a>>::Value, <V10 as Decode<'a>>::Value)

Source§

fn decode(buf: &'a [u8]) -> Result<(Self::Value, &'a [u8]), Error>

Source§

fn decode_with_format( format: Format, buf: &'a [u8], ) -> Result<(Self::Value, &'a [u8]), Error>

Source§

impl<'a, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11> Decode<'a> for (V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11)
where V0: Decode<'a>, V1: Decode<'a>, V2: Decode<'a>, V3: Decode<'a>, V4: Decode<'a>, V5: Decode<'a>, V6: Decode<'a>, V7: Decode<'a>, V8: Decode<'a>, V9: Decode<'a>, V10: Decode<'a>, V11: Decode<'a>,

Source§

type Value = (<V0 as Decode<'a>>::Value, <V1 as Decode<'a>>::Value, <V2 as Decode<'a>>::Value, <V3 as Decode<'a>>::Value, <V4 as Decode<'a>>::Value, <V5 as Decode<'a>>::Value, <V6 as Decode<'a>>::Value, <V7 as Decode<'a>>::Value, <V8 as Decode<'a>>::Value, <V9 as Decode<'a>>::Value, <V10 as Decode<'a>>::Value, <V11 as Decode<'a>>::Value)

Source§

fn decode(buf: &'a [u8]) -> Result<(Self::Value, &'a [u8]), Error>

Source§

fn decode_with_format( format: Format, buf: &'a [u8], ) -> Result<(Self::Value, &'a [u8]), Error>

Source§

impl<'a, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12> Decode<'a> for (V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12)
where V0: Decode<'a>, V1: Decode<'a>, V2: Decode<'a>, V3: Decode<'a>, V4: Decode<'a>, V5: Decode<'a>, V6: Decode<'a>, V7: Decode<'a>, V8: Decode<'a>, V9: Decode<'a>, V10: Decode<'a>, V11: Decode<'a>, V12: Decode<'a>,

Source§

type Value = (<V0 as Decode<'a>>::Value, <V1 as Decode<'a>>::Value, <V2 as Decode<'a>>::Value, <V3 as Decode<'a>>::Value, <V4 as Decode<'a>>::Value, <V5 as Decode<'a>>::Value, <V6 as Decode<'a>>::Value, <V7 as Decode<'a>>::Value, <V8 as Decode<'a>>::Value, <V9 as Decode<'a>>::Value, <V10 as Decode<'a>>::Value, <V11 as Decode<'a>>::Value, <V12 as Decode<'a>>::Value)

Source§

fn decode(buf: &'a [u8]) -> Result<(Self::Value, &'a [u8]), Error>

Source§

fn decode_with_format( format: Format, buf: &'a [u8], ) -> Result<(Self::Value, &'a [u8]), Error>

Source§

impl<'a, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13> Decode<'a> for (V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13)
where V0: Decode<'a>, V1: Decode<'a>, V2: Decode<'a>, V3: Decode<'a>, V4: Decode<'a>, V5: Decode<'a>, V6: Decode<'a>, V7: Decode<'a>, V8: Decode<'a>, V9: Decode<'a>, V10: Decode<'a>, V11: Decode<'a>, V12: Decode<'a>, V13: Decode<'a>,

Source§

type Value = (<V0 as Decode<'a>>::Value, <V1 as Decode<'a>>::Value, <V2 as Decode<'a>>::Value, <V3 as Decode<'a>>::Value, <V4 as Decode<'a>>::Value, <V5 as Decode<'a>>::Value, <V6 as Decode<'a>>::Value, <V7 as Decode<'a>>::Value, <V8 as Decode<'a>>::Value, <V9 as Decode<'a>>::Value, <V10 as Decode<'a>>::Value, <V11 as Decode<'a>>::Value, <V12 as Decode<'a>>::Value, <V13 as Decode<'a>>::Value)

Source§

fn decode(buf: &'a [u8]) -> Result<(Self::Value, &'a [u8]), Error>

Source§

fn decode_with_format( format: Format, buf: &'a [u8], ) -> Result<(Self::Value, &'a [u8]), Error>

Source§

impl<'a, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14> Decode<'a> for (V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14)
where V0: Decode<'a>, V1: Decode<'a>, V2: Decode<'a>, V3: Decode<'a>, V4: Decode<'a>, V5: Decode<'a>, V6: Decode<'a>, V7: Decode<'a>, V8: Decode<'a>, V9: Decode<'a>, V10: Decode<'a>, V11: Decode<'a>, V12: Decode<'a>, V13: Decode<'a>, V14: Decode<'a>,

Source§

type Value = (<V0 as Decode<'a>>::Value, <V1 as Decode<'a>>::Value, <V2 as Decode<'a>>::Value, <V3 as Decode<'a>>::Value, <V4 as Decode<'a>>::Value, <V5 as Decode<'a>>::Value, <V6 as Decode<'a>>::Value, <V7 as Decode<'a>>::Value, <V8 as Decode<'a>>::Value, <V9 as Decode<'a>>::Value, <V10 as Decode<'a>>::Value, <V11 as Decode<'a>>::Value, <V12 as Decode<'a>>::Value, <V13 as Decode<'a>>::Value, <V14 as Decode<'a>>::Value)

Source§

fn decode(buf: &'a [u8]) -> Result<(Self::Value, &'a [u8]), Error>

Source§

fn decode_with_format( format: Format, buf: &'a [u8], ) -> Result<(Self::Value, &'a [u8]), Error>

Source§

impl<'a, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15> Decode<'a> for (V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15)
where V0: Decode<'a>, V1: Decode<'a>, V2: Decode<'a>, V3: Decode<'a>, V4: Decode<'a>, V5: Decode<'a>, V6: Decode<'a>, V7: Decode<'a>, V8: Decode<'a>, V9: Decode<'a>, V10: Decode<'a>, V11: Decode<'a>, V12: Decode<'a>, V13: Decode<'a>, V14: Decode<'a>, V15: Decode<'a>,

Source§

type Value = (<V0 as Decode<'a>>::Value, <V1 as Decode<'a>>::Value, <V2 as Decode<'a>>::Value, <V3 as Decode<'a>>::Value, <V4 as Decode<'a>>::Value, <V5 as Decode<'a>>::Value, <V6 as Decode<'a>>::Value, <V7 as Decode<'a>>::Value, <V8 as Decode<'a>>::Value, <V9 as Decode<'a>>::Value, <V10 as Decode<'a>>::Value, <V11 as Decode<'a>>::Value, <V12 as Decode<'a>>::Value, <V13 as Decode<'a>>::Value, <V14 as Decode<'a>>::Value, <V15 as Decode<'a>>::Value)

Source§

fn decode(buf: &'a [u8]) -> Result<(Self::Value, &'a [u8]), Error>

Source§

fn decode_with_format( format: Format, buf: &'a [u8], ) -> Result<(Self::Value, &'a [u8]), Error>

Source§

impl<'a, V> Decode<'a> for Option<V>
where V: Decode<'a>,

Source§

type Value = Option<<V as Decode<'a>>::Value>

Source§

fn decode(buf: &'a [u8]) -> Result<(Self::Value, &'a [u8]), Error>

Source§

fn decode_with_format( format: Format, buf: &'a [u8], ) -> Result<(Self::Value, &'a [u8]), Error>

Source§

impl<'a, const N: usize, V> Decode<'a> for [V; N]
where V: Decode<'a>,

Source§

type Value = [<V as Decode<'a>>::Value; N]

Source§

fn decode(buf: &'a [u8]) -> Result<(Self::Value, &'a [u8]), Error>

Source§

fn decode_with_format( format: Format, buf: &'a [u8], ) -> Result<(Self::Value, &'a [u8]), Error>

Implementors§

Source§

impl<'a> Decode<'a> for Format

Source§

impl<'a> Decode<'a> for ExtensionRef<'a>

Source§

impl<'a> Decode<'a> for Timestamp32

Source§

impl<'a> Decode<'a> for Timestamp64

Source§

impl<'a> Decode<'a> for Timestamp96

Source§

impl<'a> Decode<'a> for BinDecoder

Source§

type Value = &'a [u8]

Source§

impl<'a> Decode<'a> for NilDecoder

Source§

impl<'a> Decode<'a> for StrDecoder

Source§

type Value = &'a str

Source§

impl<'a, Array, V> Decode<'a> for ArrayDecoder<Array, V>
where V: Decode<'a>, Array: FromIterator<V::Value>,

Source§

type Value = Array

Source§

impl<'a, Map, K, V> Decode<'a> for MapDecoder<Map, K, V>
where K: Decode<'a>, V: Decode<'a>, Map: FromIterator<(K::Value, V::Value)>,

Source§

type Value = Map

Source§

impl<'a, const N: usize> Decode<'a> for FixedExtension<N>