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 MyCodecRequired Associated Types§
Required Methods§
fn default_codec() -> Self::Codec
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
impl DefaultCodec for &CStr
Source§impl DefaultCodec for bool
impl DefaultCodec for bool
Source§impl DefaultCodec for ()
impl DefaultCodec for ()
Source§impl DefaultCodec for CStr
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,
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,
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>
fn default_codec() -> Self::Codec
Source§impl<'decoded, Type1> DefaultCodec for (&'decoded Type1,)where
Type1: DefaultCodec,
impl<'decoded, Type1> DefaultCodec for (&'decoded Type1,)where
Type1: DefaultCodec,
type Codec = Tuple1Codec<<Type1 as DefaultCodec>::Codec>
fn default_codec() -> Self::Codec
Source§impl<'decoded, Type1, Type2> DefaultCodec for (&'decoded Type1, &'decoded Type2)where
Type1: DefaultCodec,
Type2: DefaultCodec,
impl<'decoded, Type1, Type2> DefaultCodec for (&'decoded Type1, &'decoded Type2)where
Type1: DefaultCodec,
Type2: DefaultCodec,
type Codec = Tuple2Codec<<Type1 as DefaultCodec>::Codec, <Type2 as DefaultCodec>::Codec>
fn default_codec() -> Self::Codec
Source§impl<'decoded, Type1, Type2, Type3> DefaultCodec for (&'decoded Type1, &'decoded Type2, &'decoded Type3)
impl<'decoded, Type1, Type2, Type3> DefaultCodec for (&'decoded Type1, &'decoded Type2, &'decoded Type3)
type Codec = Tuple3Codec<<Type1 as DefaultCodec>::Codec, <Type2 as DefaultCodec>::Codec, <Type3 as DefaultCodec>::Codec>
fn default_codec() -> Self::Codec
Source§impl<'decoded, Type1, Type2, Type3, Type4> DefaultCodec for (&'decoded Type1, &'decoded Type2, &'decoded Type3, &'decoded Type4)
impl<'decoded, Type1, Type2, Type3, Type4> DefaultCodec for (&'decoded Type1, &'decoded Type2, &'decoded Type3, &'decoded Type4)
type Codec = Tuple4Codec<<Type1 as DefaultCodec>::Codec, <Type2 as DefaultCodec>::Codec, <Type3 as DefaultCodec>::Codec, <Type4 as DefaultCodec>::Codec>
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,
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,
type Codec = Tuple5Codec<<Type1 as DefaultCodec>::Codec, <Type2 as DefaultCodec>::Codec, <Type3 as DefaultCodec>::Codec, <Type4 as DefaultCodec>::Codec, <Type5 as DefaultCodec>::Codec>
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,
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,
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>
fn default_codec() -> Self::Codec
Source§impl<T> DefaultCodec for Option<T>where
T: DefaultCodec,
impl<T> DefaultCodec for Option<T>where
T: DefaultCodec,
type Codec = OptionCodec<<T as DefaultCodec>::Codec>
fn default_codec() -> Self::Codec
Source§impl<T> DefaultCodec for Box<T>where
T: DefaultCodec + ?Sized,
Available on crate feature alloc only.
impl<T> DefaultCodec for Box<T>where
T: DefaultCodec + ?Sized,
Available on crate feature
alloc only.