DefaultCodec

Trait DefaultCodec 

Source
pub trait DefaultCodec {
    type Codec;

    // Required method
    fn default_codec() -> Self::Codec;
}
Expand description

A trait for types that have a default codec associated with them. This allows for easy retrieval of the default codec for a type without needing to specify the codec explicitly each time.

§Examples

use byten::{DefaultCodec, U8Codec};

struct MyType {
    // ..
};

struct MyCodec;

impl DefaultCodec for MyType {
    type Codec = MyCodec;
    fn default_codec() -> Self::Codec { MyCodec }
}

let codec = MyType::default_codec();
// codec is of type MyCodec

Required Associated Types§

Required Methods§

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 DefaultCodec for &CStr

Source§

impl DefaultCodec for bool

Source§

impl DefaultCodec for i8

Source§

impl DefaultCodec for u8

Source§

impl DefaultCodec for ()

Source§

impl DefaultCodec for CStr

Source§

impl<'decoded, Codec1, Codec2, Codec3, Codec4, Codec5, Codec6, Codec7> DefaultCodec for (&'decoded Codec1, &'decoded Codec2, &'decoded Codec3, &'decoded Codec4, &'decoded Codec5, &'decoded Codec6, &'decoded Codec7)
where Codec1: DefaultCodec, Codec2: DefaultCodec, Codec3: DefaultCodec, Codec4: DefaultCodec, Codec5: DefaultCodec, Codec6: DefaultCodec, Codec7: DefaultCodec,

Source§

type Codec = Tuple7Codec<<Codec1 as DefaultCodec>::Codec, <Codec2 as DefaultCodec>::Codec, <Codec3 as DefaultCodec>::Codec, <Codec4 as DefaultCodec>::Codec, <Codec5 as DefaultCodec>::Codec, <Codec6 as DefaultCodec>::Codec, <Codec7 as DefaultCodec>::Codec>

Source§

fn default_codec() -> Self::Codec

Source§

impl<'decoded, Type1> DefaultCodec for (&'decoded Type1,)
where Type1: DefaultCodec,

Source§

impl<'decoded, Type1, Type2> DefaultCodec for (&'decoded Type1, &'decoded Type2)
where Type1: DefaultCodec, Type2: DefaultCodec,

Source§

impl<'decoded, Type1, Type2, Type3> DefaultCodec for (&'decoded Type1, &'decoded Type2, &'decoded Type3)
where Type1: DefaultCodec, Type2: DefaultCodec, Type3: DefaultCodec,

Source§

type Codec = Tuple3Codec<<Type1 as DefaultCodec>::Codec, <Type2 as DefaultCodec>::Codec, <Type3 as DefaultCodec>::Codec>

Source§

fn default_codec() -> Self::Codec

Source§

impl<'decoded, Type1, Type2, Type3, Type4> DefaultCodec for (&'decoded Type1, &'decoded Type2, &'decoded Type3, &'decoded Type4)
where Type1: DefaultCodec, Type2: DefaultCodec, Type3: DefaultCodec, Type4: DefaultCodec,

Source§

type Codec = Tuple4Codec<<Type1 as DefaultCodec>::Codec, <Type2 as DefaultCodec>::Codec, <Type3 as DefaultCodec>::Codec, <Type4 as DefaultCodec>::Codec>

Source§

fn default_codec() -> Self::Codec

Source§

impl<'decoded, Type1, Type2, Type3, Type4, Type5> DefaultCodec for (&'decoded Type1, &'decoded Type2, &'decoded Type3, &'decoded Type4, &'decoded Type5)
where Type1: DefaultCodec, Type2: DefaultCodec, Type3: DefaultCodec, Type4: DefaultCodec, Type5: DefaultCodec,

Source§

type Codec = Tuple5Codec<<Type1 as DefaultCodec>::Codec, <Type2 as DefaultCodec>::Codec, <Type3 as DefaultCodec>::Codec, <Type4 as DefaultCodec>::Codec, <Type5 as DefaultCodec>::Codec>

Source§

fn default_codec() -> Self::Codec

Source§

impl<'decoded, Type1, Type2, Type3, Type4, Type5, Type6> DefaultCodec for (&'decoded Type1, &'decoded Type2, &'decoded Type3, &'decoded Type4, &'decoded Type5, &'decoded Type6)
where Type1: DefaultCodec, Type2: DefaultCodec, Type3: DefaultCodec, Type4: DefaultCodec, Type5: DefaultCodec, Type6: DefaultCodec,

Source§

type Codec = Tuple6Codec<<Type1 as DefaultCodec>::Codec, <Type2 as DefaultCodec>::Codec, <Type3 as DefaultCodec>::Codec, <Type4 as DefaultCodec>::Codec, <Type5 as DefaultCodec>::Codec, <Type6 as DefaultCodec>::Codec>

Source§

fn default_codec() -> Self::Codec

Source§

impl<T> DefaultCodec for Option<T>
where T: DefaultCodec,

Source§

impl<T> DefaultCodec for Box<T>
where T: DefaultCodec + ?Sized,

Available on crate feature alloc only.
Source§

impl<const N: usize> DefaultCodec for &[u8; N]

Source§

impl<const N: usize> DefaultCodec for CString<N>

Source§

impl<const N: usize> DefaultCodec for [u8; N]

Implementors§