Trait DataType

Source
pub trait DataType
where 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§

Required Associated Types§

Source

type BuilderForEncode

Always a reference

Source

type BuilderForStruct<'unused>

Source

type DecodeLifetime<'a>

Required Methods§

Source

fn decode<'a>( buf: &mut &'a [u8], ) -> Result<Self::DecodeLifetime<'a>, ParseError>

Source

fn encode<'a, 'b>(buf: &mut BufWriter<'a>, value: &'b Self::BuilderForEncode)

Provided Methods§

Source

fn encode_usize<'a>(buf: &mut BufWriter<'a>, value: usize)

Source

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.

Implementations on Foreign Types§

Source§

impl DataType for f32

Source§

const META: StructFieldMeta

Source§

type BuilderForStruct<'unused> = f32

Source§

type BuilderForEncode = f32

Source§

type DecodeLifetime<'a> = f32

Source§

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

Source§

fn encode<'__buffer_lifetime, '__value_lifetime>( buf: &mut BufWriter<'__buffer_lifetime>, value: &'__value_lifetime Self::BuilderForEncode, )

Source§

fn encode_usize<'__buffer_lifetime, '__value_lifetime>( buf: &mut BufWriter<'__buffer_lifetime>, value: usize, )

Source§

fn decode_usize(buf: &mut &[u8]) -> Result<usize, ParseError>

Source§

impl DataType for f64

Source§

const META: StructFieldMeta

Source§

type BuilderForStruct<'unused> = f64

Source§

type BuilderForEncode = f64

Source§

type DecodeLifetime<'a> = f64

Source§

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

Source§

fn encode<'__buffer_lifetime, '__value_lifetime>( buf: &mut BufWriter<'__buffer_lifetime>, value: &'__value_lifetime Self::BuilderForEncode, )

Source§

fn encode_usize<'__buffer_lifetime, '__value_lifetime>( buf: &mut BufWriter<'__buffer_lifetime>, value: usize, )

Source§

fn decode_usize(buf: &mut &[u8]) -> Result<usize, ParseError>

Source§

impl DataType for i8

Source§

const META: StructFieldMeta

Source§

type BuilderForStruct<'unused> = i8

Source§

type BuilderForEncode = i8

Source§

type DecodeLifetime<'a> = i8

Source§

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

Source§

fn encode<'__buffer_lifetime, '__value_lifetime>( buf: &mut BufWriter<'__buffer_lifetime>, value: &'__value_lifetime Self::BuilderForEncode, )

Source§

fn encode_usize<'__buffer_lifetime, '__value_lifetime>( buf: &mut BufWriter<'__buffer_lifetime>, value: usize, )

Source§

fn decode_usize(buf: &mut &[u8]) -> Result<usize, ParseError>

Source§

impl DataType for i16

Source§

const META: StructFieldMeta

Source§

type BuilderForStruct<'unused> = i16

Source§

type BuilderForEncode = i16

Source§

type DecodeLifetime<'a> = i16

Source§

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

Source§

fn encode<'__buffer_lifetime, '__value_lifetime>( buf: &mut BufWriter<'__buffer_lifetime>, value: &'__value_lifetime Self::BuilderForEncode, )

Source§

fn encode_usize<'__buffer_lifetime, '__value_lifetime>( buf: &mut BufWriter<'__buffer_lifetime>, value: usize, )

Source§

fn decode_usize(buf: &mut &[u8]) -> Result<usize, ParseError>

Source§

impl DataType for i32

Source§

const META: StructFieldMeta

Source§

type BuilderForStruct<'unused> = i32

Source§

type BuilderForEncode = i32

Source§

type DecodeLifetime<'a> = i32

Source§

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

Source§

fn encode<'__buffer_lifetime, '__value_lifetime>( buf: &mut BufWriter<'__buffer_lifetime>, value: &'__value_lifetime Self::BuilderForEncode, )

Source§

fn encode_usize<'__buffer_lifetime, '__value_lifetime>( buf: &mut BufWriter<'__buffer_lifetime>, value: usize, )

Source§

fn decode_usize(buf: &mut &[u8]) -> Result<usize, ParseError>

Source§

impl DataType for i64

Source§

const META: StructFieldMeta

Source§

type BuilderForStruct<'unused> = i64

Source§

type BuilderForEncode = i64

Source§

type DecodeLifetime<'a> = i64

Source§

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

Source§

fn encode<'__buffer_lifetime, '__value_lifetime>( buf: &mut BufWriter<'__buffer_lifetime>, value: &'__value_lifetime Self::BuilderForEncode, )

Source§

fn encode_usize<'__buffer_lifetime, '__value_lifetime>( buf: &mut BufWriter<'__buffer_lifetime>, value: usize, )

Source§

fn decode_usize(buf: &mut &[u8]) -> Result<usize, ParseError>

Source§

impl DataType for u8

Source§

const META: StructFieldMeta

Source§

type BuilderForStruct<'unused> = u8

Source§

type BuilderForEncode = u8

Source§

type DecodeLifetime<'a> = u8

Source§

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

Source§

fn encode<'__buffer_lifetime, '__value_lifetime>( buf: &mut BufWriter<'__buffer_lifetime>, value: &'__value_lifetime Self::BuilderForEncode, )

Source§

fn encode_usize<'__buffer_lifetime, '__value_lifetime>( buf: &mut BufWriter<'__buffer_lifetime>, value: usize, )

Source§

fn decode_usize(buf: &mut &[u8]) -> Result<usize, ParseError>

Source§

impl DataType for u16

Source§

const META: StructFieldMeta

Source§

type BuilderForStruct<'unused> = u16

Source§

type BuilderForEncode = u16

Source§

type DecodeLifetime<'a> = u16

Source§

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

Source§

fn encode<'__buffer_lifetime, '__value_lifetime>( buf: &mut BufWriter<'__buffer_lifetime>, value: &'__value_lifetime Self::BuilderForEncode, )

Source§

fn encode_usize<'__buffer_lifetime, '__value_lifetime>( buf: &mut BufWriter<'__buffer_lifetime>, value: usize, )

Source§

fn decode_usize(buf: &mut &[u8]) -> Result<usize, ParseError>

Source§

impl DataType for u32

Source§

const META: StructFieldMeta

Source§

type BuilderForStruct<'unused> = u32

Source§

type BuilderForEncode = u32

Source§

type DecodeLifetime<'a> = u32

Source§

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

Source§

fn encode<'__buffer_lifetime, '__value_lifetime>( buf: &mut BufWriter<'__buffer_lifetime>, value: &'__value_lifetime Self::BuilderForEncode, )

Source§

fn encode_usize<'__buffer_lifetime, '__value_lifetime>( buf: &mut BufWriter<'__buffer_lifetime>, value: usize, )

Source§

fn decode_usize(buf: &mut &[u8]) -> Result<usize, ParseError>

Source§

impl DataType for u64

Source§

const META: StructFieldMeta

Source§

type BuilderForStruct<'unused> = u64

Source§

type BuilderForEncode = u64

Source§

type DecodeLifetime<'a> = u64

Source§

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

Source§

fn encode<'__buffer_lifetime, '__value_lifetime>( buf: &mut BufWriter<'__buffer_lifetime>, value: &'__value_lifetime Self::BuilderForEncode, )

Source§

fn encode_usize<'__buffer_lifetime, '__value_lifetime>( buf: &mut BufWriter<'__buffer_lifetime>, value: usize, )

Source§

fn decode_usize(buf: &mut &[u8]) -> Result<usize, ParseError>

Source§

impl<const N: usize, T: DataType> DataType for [T; N]
where for<'a> T::DecodeLifetime<'a>: Default + Copy,

Source§

const META: StructFieldMeta

Source§

type BuilderForStruct<'unused> = [<T as DataType>::BuilderForStruct<'unused>; N]

Source§

type BuilderForEncode = [<T as DataType>::BuilderForEncode; N]

Source§

type DecodeLifetime<'__next_lifetime> = [<T as DataType>::DecodeLifetime<'__next_lifetime>; N]

Source§

fn decode<'__next_lifetime>( buf: &mut &'__next_lifetime [u8], ) -> Result<Self::DecodeLifetime<'__next_lifetime>, ParseError>

Source§

fn encode<'__buffer_lifetime, '__value_lifetime>( buf: &mut BufWriter<'__buffer_lifetime>, value: &'__value_lifetime Self::BuilderForEncode, )

Implementors§

Source§

impl DataType for Length

Source§

impl DataType for Uuid

Source§

impl<'a> DataType for Encoded<'a>

Source§

const META: StructFieldMeta

Source§

type BuilderForStruct<'unused> = Encoded<'a>

Source§

type BuilderForEncode = Encoded<'a>

Source§

type DecodeLifetime<'__next_lifetime> = Encoded<'__next_lifetime>

Source§

impl<'a> DataType for LString<'a>

Source§

const META: StructFieldMeta

Source§

type BuilderForStruct<'unused> = &'a str

Source§

type BuilderForEncode = &'a str

Source§

type DecodeLifetime<'__next_lifetime> = LString<'__next_lifetime>

Source§

impl<'a> DataType for Rest<'a>

Source§

const META: StructFieldMeta

Source§

type BuilderForStruct<'unused> = &'a [u8]

Source§

type BuilderForEncode = &'a [u8]

Source§

type DecodeLifetime<'__next_lifetime> = Rest<'__next_lifetime>

Source§

impl<'a> DataType for ZTString<'a>

Source§

const META: StructFieldMeta

Source§

type BuilderForStruct<'unused> = &'a str

Source§

type BuilderForEncode = &'a str

Source§

type DecodeLifetime<'__next_lifetime> = ZTString<'__next_lifetime>

Source§

impl<'a, L: DataType, T: DataType> DataType for Array<'a, L, T>
where T::BuilderForEncode: 'a, T::BuilderForStruct<'a>: 'a,

Source§

const META: StructFieldMeta

Source§

type BuilderForEncode = &'a [<T as DataType>::BuilderForEncode]

Source§

type BuilderForStruct<'unused> = &'a [<T as DataType>::BuilderForStruct<'a>]

Source§

type DecodeLifetime<'__next_lifetime> = Array<'__next_lifetime, L, <T as DataType>::DecodeLifetime<'__next_lifetime>>

Source§

impl<'a, T: DataType> DataType for ZTArray<'a, T>
where T::BuilderForEncode: 'a, T::BuilderForStruct<'a>: 'a,

Source§

const META: StructFieldMeta

Source§

type BuilderForEncode = &'a [<T as DataType>::BuilderForEncode]

Source§

type BuilderForStruct<'unused> = &'a [<T as DataType>::BuilderForStruct<'a>]

Source§

type DecodeLifetime<'__next_lifetime> = ZTArray<'__next_lifetime, <T as DataType>::DecodeLifetime<'__next_lifetime>>