ToRef

Trait ToRef 

Source
pub trait ToRef {
    type Ref;

    const MEM_TYPE: MemType;

    // Required methods
    fn to_size(&self, acc: &mut usize);
    fn to_ref(&self, buffer: &mut Writer) -> Self::Ref;

    // Provided methods
    fn calc_size(&self) -> usize { ... }
    fn calc_ref(&self) -> (Vec<u8>, Self::Ref) { ... }
}

Required Associated Constants§

Required Associated Types§

Required Methods§

Source

fn to_size(&self, acc: &mut usize)

Source

fn to_ref(&self, buffer: &mut Writer) -> Self::Ref

Provided Methods§

Source

fn calc_size(&self) -> usize

Source

fn calc_ref(&self) -> (Vec<u8>, Self::Ref)

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 ToRef for bool

Source§

const MEM_TYPE: MemType = MemType::Primitive

Source§

type Ref = bool

Source§

fn to_size(&self, _: &mut usize)

Source§

fn to_ref(&self, _: &mut Writer) -> Self::Ref

Source§

impl ToRef for char

Source§

const MEM_TYPE: MemType = MemType::Primitive

Source§

type Ref = char

Source§

fn to_size(&self, _: &mut usize)

Source§

fn to_ref(&self, _: &mut Writer) -> Self::Ref

Source§

impl ToRef for f32

Source§

const MEM_TYPE: MemType = MemType::Primitive

Source§

type Ref = f32

Source§

fn to_size(&self, _: &mut usize)

Source§

fn to_ref(&self, _: &mut Writer) -> Self::Ref

Source§

impl ToRef for f64

Source§

const MEM_TYPE: MemType = MemType::Primitive

Source§

type Ref = f64

Source§

fn to_size(&self, _: &mut usize)

Source§

fn to_ref(&self, _: &mut Writer) -> Self::Ref

Source§

impl ToRef for i8

Source§

const MEM_TYPE: MemType = MemType::Primitive

Source§

type Ref = i8

Source§

fn to_size(&self, _: &mut usize)

Source§

fn to_ref(&self, _: &mut Writer) -> Self::Ref

Source§

impl ToRef for i16

Source§

const MEM_TYPE: MemType = MemType::Primitive

Source§

type Ref = i16

Source§

fn to_size(&self, _: &mut usize)

Source§

fn to_ref(&self, _: &mut Writer) -> Self::Ref

Source§

impl ToRef for i32

Source§

const MEM_TYPE: MemType = MemType::Primitive

Source§

type Ref = i32

Source§

fn to_size(&self, _: &mut usize)

Source§

fn to_ref(&self, _: &mut Writer) -> Self::Ref

Source§

impl ToRef for i64

Source§

const MEM_TYPE: MemType = MemType::Primitive

Source§

type Ref = i64

Source§

fn to_size(&self, _: &mut usize)

Source§

fn to_ref(&self, _: &mut Writer) -> Self::Ref

Source§

impl ToRef for isize

Source§

const MEM_TYPE: MemType = MemType::Primitive

Source§

type Ref = isize

Source§

fn to_size(&self, _: &mut usize)

Source§

fn to_ref(&self, _: &mut Writer) -> Self::Ref

Source§

impl ToRef for u8

Source§

const MEM_TYPE: MemType = MemType::Primitive

Source§

type Ref = u8

Source§

fn to_size(&self, _: &mut usize)

Source§

fn to_ref(&self, _: &mut Writer) -> Self::Ref

Source§

impl ToRef for u16

Source§

const MEM_TYPE: MemType = MemType::Primitive

Source§

type Ref = u16

Source§

fn to_size(&self, _: &mut usize)

Source§

fn to_ref(&self, _: &mut Writer) -> Self::Ref

Source§

impl ToRef for u32

Source§

const MEM_TYPE: MemType = MemType::Primitive

Source§

type Ref = u32

Source§

fn to_size(&self, _: &mut usize)

Source§

fn to_ref(&self, _: &mut Writer) -> Self::Ref

Source§

impl ToRef for u64

Source§

const MEM_TYPE: MemType = MemType::Primitive

Source§

type Ref = u64

Source§

fn to_size(&self, _: &mut usize)

Source§

fn to_ref(&self, _: &mut Writer) -> Self::Ref

Source§

impl ToRef for usize

Source§

const MEM_TYPE: MemType = MemType::Primitive

Source§

type Ref = usize

Source§

fn to_size(&self, _: &mut usize)

Source§

fn to_ref(&self, _: &mut Writer) -> Self::Ref

Source§

impl ToRef for String

Source§

const MEM_TYPE: MemType = MemType::SimpleWrapper

Source§

type Ref = StringRef

Source§

fn to_size(&self, _: &mut usize)

Source§

fn to_ref(&self, _: &mut Writer) -> Self::Ref

Source§

impl<T1> ToRef for (T1,)
where T1: ToRef,

Source§

const MEM_TYPE: MemType

Source§

type Ref = (<T1 as ToRef>::Ref,)

Source§

fn to_size(&self, acc: &mut usize)

Source§

fn to_ref(&self, buffer: &mut Writer) -> Self::Ref

Source§

impl<T1, T2> ToRef for (T1, T2)
where T1: ToRef, T2: ToRef,

Source§

const MEM_TYPE: MemType

Source§

type Ref = (<T1 as ToRef>::Ref, <T2 as ToRef>::Ref)

Source§

fn to_size(&self, acc: &mut usize)

Source§

fn to_ref(&self, buffer: &mut Writer) -> Self::Ref

Source§

impl<T1, T2, T3> ToRef for (T1, T2, T3)
where T1: ToRef, T2: ToRef, T3: ToRef,

Source§

const MEM_TYPE: MemType

Source§

type Ref = (<T1 as ToRef>::Ref, <T2 as ToRef>::Ref, <T3 as ToRef>::Ref)

Source§

fn to_size(&self, acc: &mut usize)

Source§

fn to_ref(&self, buffer: &mut Writer) -> Self::Ref

Source§

impl<T1, T2, T3, T4> ToRef for (T1, T2, T3, T4)
where T1: ToRef, T2: ToRef, T3: ToRef, T4: ToRef,

Source§

const MEM_TYPE: MemType

Source§

type Ref = (<T1 as ToRef>::Ref, <T2 as ToRef>::Ref, <T3 as ToRef>::Ref, <T4 as ToRef>::Ref)

Source§

fn to_size(&self, acc: &mut usize)

Source§

fn to_ref(&self, buffer: &mut Writer) -> Self::Ref

Source§

impl<T1, T2, T3, T4, T5> ToRef for (T1, T2, T3, T4, T5)
where T1: ToRef, T2: ToRef, T3: ToRef, T4: ToRef, T5: ToRef,

Source§

const MEM_TYPE: MemType

Source§

type Ref = (<T1 as ToRef>::Ref, <T2 as ToRef>::Ref, <T3 as ToRef>::Ref, <T4 as ToRef>::Ref, <T5 as ToRef>::Ref)

Source§

fn to_size(&self, acc: &mut usize)

Source§

fn to_ref(&self, buffer: &mut Writer) -> Self::Ref

Source§

impl<T1, T2, T3, T4, T5, T6> ToRef for (T1, T2, T3, T4, T5, T6)
where T1: ToRef, T2: ToRef, T3: ToRef, T4: ToRef, T5: ToRef, T6: ToRef,

Source§

const MEM_TYPE: MemType

Source§

type Ref = (<T1 as ToRef>::Ref, <T2 as ToRef>::Ref, <T3 as ToRef>::Ref, <T4 as ToRef>::Ref, <T5 as ToRef>::Ref, <T6 as ToRef>::Ref)

Source§

fn to_size(&self, acc: &mut usize)

Source§

fn to_ref(&self, buffer: &mut Writer) -> Self::Ref

Source§

impl<T1, T2, T3, T4, T5, T6, T7> ToRef for (T1, T2, T3, T4, T5, T6, T7)
where T1: ToRef, T2: ToRef, T3: ToRef, T4: ToRef, T5: ToRef, T6: ToRef, T7: ToRef,

Source§

const MEM_TYPE: MemType

Source§

type Ref = (<T1 as ToRef>::Ref, <T2 as ToRef>::Ref, <T3 as ToRef>::Ref, <T4 as ToRef>::Ref, <T5 as ToRef>::Ref, <T6 as ToRef>::Ref, <T7 as ToRef>::Ref)

Source§

fn to_size(&self, acc: &mut usize)

Source§

fn to_ref(&self, buffer: &mut Writer) -> Self::Ref

Source§

impl<T1, T2, T3, T4, T5, T6, T7, T8> ToRef for (T1, T2, T3, T4, T5, T6, T7, T8)
where T1: ToRef, T2: ToRef, T3: ToRef, T4: ToRef, T5: ToRef, T6: ToRef, T7: ToRef, T8: ToRef,

Source§

const MEM_TYPE: MemType

Source§

type Ref = (<T1 as ToRef>::Ref, <T2 as ToRef>::Ref, <T3 as ToRef>::Ref, <T4 as ToRef>::Ref, <T5 as ToRef>::Ref, <T6 as ToRef>::Ref, <T7 as ToRef>::Ref, <T8 as ToRef>::Ref)

Source§

fn to_size(&self, acc: &mut usize)

Source§

fn to_ref(&self, buffer: &mut Writer) -> Self::Ref

Source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9> ToRef for (T1, T2, T3, T4, T5, T6, T7, T8, T9)
where T1: ToRef, T2: ToRef, T3: ToRef, T4: ToRef, T5: ToRef, T6: ToRef, T7: ToRef, T8: ToRef, T9: ToRef,

Source§

const MEM_TYPE: MemType

Source§

type Ref = (<T1 as ToRef>::Ref, <T2 as ToRef>::Ref, <T3 as ToRef>::Ref, <T4 as ToRef>::Ref, <T5 as ToRef>::Ref, <T6 as ToRef>::Ref, <T7 as ToRef>::Ref, <T8 as ToRef>::Ref, <T9 as ToRef>::Ref)

Source§

fn to_size(&self, acc: &mut usize)

Source§

fn to_ref(&self, buffer: &mut Writer) -> Self::Ref

Source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> ToRef for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
where T1: ToRef, T2: ToRef, T3: ToRef, T4: ToRef, T5: ToRef, T6: ToRef, T7: ToRef, T8: ToRef, T9: ToRef, T10: ToRef,

Source§

const MEM_TYPE: MemType

Source§

type Ref = (<T1 as ToRef>::Ref, <T2 as ToRef>::Ref, <T3 as ToRef>::Ref, <T4 as ToRef>::Ref, <T5 as ToRef>::Ref, <T6 as ToRef>::Ref, <T7 as ToRef>::Ref, <T8 as ToRef>::Ref, <T9 as ToRef>::Ref, <T10 as ToRef>::Ref)

Source§

fn to_size(&self, acc: &mut usize)

Source§

fn to_ref(&self, buffer: &mut Writer) -> Self::Ref

Source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> ToRef for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
where T1: ToRef, T2: ToRef, T3: ToRef, T4: ToRef, T5: ToRef, T6: ToRef, T7: ToRef, T8: ToRef, T9: ToRef, T10: ToRef, T11: ToRef,

Source§

const MEM_TYPE: MemType

Source§

type Ref = (<T1 as ToRef>::Ref, <T2 as ToRef>::Ref, <T3 as ToRef>::Ref, <T4 as ToRef>::Ref, <T5 as ToRef>::Ref, <T6 as ToRef>::Ref, <T7 as ToRef>::Ref, <T8 as ToRef>::Ref, <T9 as ToRef>::Ref, <T10 as ToRef>::Ref, <T11 as ToRef>::Ref)

Source§

fn to_size(&self, acc: &mut usize)

Source§

fn to_ref(&self, buffer: &mut Writer) -> Self::Ref

Source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> ToRef for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)
where T1: ToRef, T2: ToRef, T3: ToRef, T4: ToRef, T5: ToRef, T6: ToRef, T7: ToRef, T8: ToRef, T9: ToRef, T10: ToRef, T11: ToRef, T12: ToRef,

Source§

const MEM_TYPE: MemType

Source§

type Ref = (<T1 as ToRef>::Ref, <T2 as ToRef>::Ref, <T3 as ToRef>::Ref, <T4 as ToRef>::Ref, <T5 as ToRef>::Ref, <T6 as ToRef>::Ref, <T7 as ToRef>::Ref, <T8 as ToRef>::Ref, <T9 as ToRef>::Ref, <T10 as ToRef>::Ref, <T11 as ToRef>::Ref, <T12 as ToRef>::Ref)

Source§

fn to_size(&self, acc: &mut usize)

Source§

fn to_ref(&self, buffer: &mut Writer) -> Self::Ref

Source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> ToRef for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)
where T1: ToRef, T2: ToRef, T3: ToRef, T4: ToRef, T5: ToRef, T6: ToRef, T7: ToRef, T8: ToRef, T9: ToRef, T10: ToRef, T11: ToRef, T12: ToRef, T13: ToRef,

Source§

const MEM_TYPE: MemType

Source§

type Ref = (<T1 as ToRef>::Ref, <T2 as ToRef>::Ref, <T3 as ToRef>::Ref, <T4 as ToRef>::Ref, <T5 as ToRef>::Ref, <T6 as ToRef>::Ref, <T7 as ToRef>::Ref, <T8 as ToRef>::Ref, <T9 as ToRef>::Ref, <T10 as ToRef>::Ref, <T11 as ToRef>::Ref, <T12 as ToRef>::Ref, <T13 as ToRef>::Ref)

Source§

fn to_size(&self, acc: &mut usize)

Source§

fn to_ref(&self, buffer: &mut Writer) -> Self::Ref

Source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> ToRef for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)
where T1: ToRef, T2: ToRef, T3: ToRef, T4: ToRef, T5: ToRef, T6: ToRef, T7: ToRef, T8: ToRef, T9: ToRef, T10: ToRef, T11: ToRef, T12: ToRef, T13: ToRef, T14: ToRef,

Source§

const MEM_TYPE: MemType

Source§

type Ref = (<T1 as ToRef>::Ref, <T2 as ToRef>::Ref, <T3 as ToRef>::Ref, <T4 as ToRef>::Ref, <T5 as ToRef>::Ref, <T6 as ToRef>::Ref, <T7 as ToRef>::Ref, <T8 as ToRef>::Ref, <T9 as ToRef>::Ref, <T10 as ToRef>::Ref, <T11 as ToRef>::Ref, <T12 as ToRef>::Ref, <T13 as ToRef>::Ref, <T14 as ToRef>::Ref)

Source§

fn to_size(&self, acc: &mut usize)

Source§

fn to_ref(&self, buffer: &mut Writer) -> Self::Ref

Source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> ToRef for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)
where T1: ToRef, T2: ToRef, T3: ToRef, T4: ToRef, T5: ToRef, T6: ToRef, T7: ToRef, T8: ToRef, T9: ToRef, T10: ToRef, T11: ToRef, T12: ToRef, T13: ToRef, T14: ToRef, T15: ToRef,

Source§

const MEM_TYPE: MemType

Source§

type Ref = (<T1 as ToRef>::Ref, <T2 as ToRef>::Ref, <T3 as ToRef>::Ref, <T4 as ToRef>::Ref, <T5 as ToRef>::Ref, <T6 as ToRef>::Ref, <T7 as ToRef>::Ref, <T8 as ToRef>::Ref, <T9 as ToRef>::Ref, <T10 as ToRef>::Ref, <T11 as ToRef>::Ref, <T12 as ToRef>::Ref, <T13 as ToRef>::Ref, <T14 as ToRef>::Ref, <T15 as ToRef>::Ref)

Source§

fn to_size(&self, acc: &mut usize)

Source§

fn to_ref(&self, buffer: &mut Writer) -> Self::Ref

Source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> ToRef for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)
where T1: ToRef, T2: ToRef, T3: ToRef, T4: ToRef, T5: ToRef, T6: ToRef, T7: ToRef, T8: ToRef, T9: ToRef, T10: ToRef, T11: ToRef, T12: ToRef, T13: ToRef, T14: ToRef, T15: ToRef, T16: ToRef,

Source§

const MEM_TYPE: MemType

Source§

type Ref = (<T1 as ToRef>::Ref, <T2 as ToRef>::Ref, <T3 as ToRef>::Ref, <T4 as ToRef>::Ref, <T5 as ToRef>::Ref, <T6 as ToRef>::Ref, <T7 as ToRef>::Ref, <T8 as ToRef>::Ref, <T9 as ToRef>::Ref, <T10 as ToRef>::Ref, <T11 as ToRef>::Ref, <T12 as ToRef>::Ref, <T13 as ToRef>::Ref, <T14 as ToRef>::Ref, <T15 as ToRef>::Ref, <T16 as ToRef>::Ref)

Source§

fn to_size(&self, acc: &mut usize)

Source§

fn to_ref(&self, buffer: &mut Writer) -> Self::Ref

Source§

impl<T: ToRef> ToRef for &T

Source§

const MEM_TYPE: MemType = T::MEM_TYPE

Source§

type Ref = <T as ToRef>::Ref

Source§

fn to_size(&self, acc: &mut usize)

Source§

fn to_ref(&self, buffer: &mut Writer) -> Self::Ref

Source§

impl<T: ToRef> ToRef for Vec<T>

Source§

const MEM_TYPE: MemType

Source§

type Ref = ListRef

Source§

fn to_size(&self, acc: &mut usize)

Source§

fn to_ref(&self, writer: &mut Writer) -> Self::Ref

Implementors§