pub trait DataTypewhere
Self: Sized,{
type BuilderForEncode;
type BuilderForStruct<'unused>;
type DecodeLifetime<'a>;
const META: StructFieldMeta;
// Required methods
fn decode<'a>(
buf: &mut &'a [u8],
) -> Result<Self::DecodeLifetime<'a>, ParseError>;
fn encode<'a, 'b>(
buf: &mut BufWriter<'a>,
value: &'b Self::BuilderForEncode,
);
// Provided methods
fn encode_usize<'a>(buf: &mut BufWriter<'a>, value: usize) { ... }
fn decode_usize(buf: &mut &[u8]) -> Result<usize, ParseError> { ... }
}
Expand description
All data types must implement this trait. This allows for encoding and decoding of the data type to byte buffers.
Required Associated Constants§
const META: StructFieldMeta
Required Associated Types§
Sourcetype BuilderForEncode
type BuilderForEncode
Always a reference
type BuilderForStruct<'unused>
type DecodeLifetime<'a>
Required Methods§
fn decode<'a>( buf: &mut &'a [u8], ) -> Result<Self::DecodeLifetime<'a>, ParseError>
fn encode<'a, 'b>(buf: &mut BufWriter<'a>, value: &'b Self::BuilderForEncode)
Provided Methods§
fn encode_usize<'a>(buf: &mut BufWriter<'a>, value: usize)
fn decode_usize(buf: &mut &[u8]) -> Result<usize, ParseError>
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.