Trait xc3_write::Xc3Write

source ·
pub trait Xc3Write {
    type Offsets<'a>
       where Self: 'a;

    const ALIGNMENT: u64 = 4u64;

    // Required method
    fn xc3_write<W: Write + Seek>(
        &self,
        writer: &mut W,
        data_ptr: &mut u64
    ) -> Xc3Result<Self::Offsets<'_>>;

    // Provided method
    fn should_write(&self) -> Option<bool> { ... }
}
Expand description

The write pass that writes fields and placeholder offsets.

Required Associated Types§

source

type Offsets<'a> where Self: 'a

The type storing offset data to be used in Xc3WriteOffsets.

Provided Associated Constants§

source

const ALIGNMENT: u64 = 4u64

The alignment of absolute offsets for this type in bytes.

Required Methods§

source

fn xc3_write<W: Write + Seek>( &self, writer: &mut W, data_ptr: &mut u64 ) -> Xc3Result<Self::Offsets<'_>>

Write all fields and placeholder offsets and set data_ptr to the position after writing. This should almost always be derived for non primitive types.

Provided Methods§

source

fn should_write(&self) -> Option<bool>

Return true if this type has no data and should not be written.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl Xc3Write for f32

§

type Offsets<'a> = ()

source§

fn xc3_write<W: Write + Seek>( &self, writer: &mut W, data_ptr: &mut u64 ) -> Xc3Result<Self::Offsets<'_>>

source§

const ALIGNMENT: u64 = 4u64

source§

impl Xc3Write for i8

§

type Offsets<'a> = ()

source§

fn xc3_write<W: Write + Seek>( &self, writer: &mut W, data_ptr: &mut u64 ) -> Xc3Result<Self::Offsets<'_>>

source§

const ALIGNMENT: u64 = 1u64

source§

impl Xc3Write for i16

§

type Offsets<'a> = ()

source§

fn xc3_write<W: Write + Seek>( &self, writer: &mut W, data_ptr: &mut u64 ) -> Xc3Result<Self::Offsets<'_>>

source§

const ALIGNMENT: u64 = 2u64

source§

impl Xc3Write for i32

§

type Offsets<'a> = ()

source§

fn xc3_write<W: Write + Seek>( &self, writer: &mut W, data_ptr: &mut u64 ) -> Xc3Result<Self::Offsets<'_>>

source§

const ALIGNMENT: u64 = 4u64

source§

impl Xc3Write for i64

§

type Offsets<'a> = ()

source§

fn xc3_write<W: Write + Seek>( &self, writer: &mut W, data_ptr: &mut u64 ) -> Xc3Result<Self::Offsets<'_>>

source§

const ALIGNMENT: u64 = 4u64

source§

impl Xc3Write for u8

§

type Offsets<'a> = ()

source§

fn xc3_write<W: Write + Seek>( &self, writer: &mut W, data_ptr: &mut u64 ) -> Xc3Result<Self::Offsets<'_>>

source§

const ALIGNMENT: u64 = 1u64

source§

impl Xc3Write for u16

§

type Offsets<'a> = ()

source§

fn xc3_write<W: Write + Seek>( &self, writer: &mut W, data_ptr: &mut u64 ) -> Xc3Result<Self::Offsets<'_>>

source§

const ALIGNMENT: u64 = 2u64

source§

impl Xc3Write for u32

§

type Offsets<'a> = ()

source§

fn xc3_write<W: Write + Seek>( &self, writer: &mut W, data_ptr: &mut u64 ) -> Xc3Result<Self::Offsets<'_>>

source§

const ALIGNMENT: u64 = 4u64

source§

impl Xc3Write for u64

§

type Offsets<'a> = ()

source§

fn xc3_write<W: Write + Seek>( &self, writer: &mut W, data_ptr: &mut u64 ) -> Xc3Result<Self::Offsets<'_>>

source§

const ALIGNMENT: u64 = 4u64

source§

impl Xc3Write for ()

§

type Offsets<'a> = ()

source§

fn xc3_write<W: Write + Seek>( &self, _writer: &mut W, _data_ptr: &mut u64 ) -> Xc3Result<Self::Offsets<'_>>

source§

const ALIGNMENT: u64 = 1u64

source§

impl Xc3Write for String

§

type Offsets<'a> = ()

source§

fn xc3_write<W: Write + Seek>( &self, writer: &mut W, data_ptr: &mut u64 ) -> Xc3Result<Self::Offsets<'_>>

source§

const ALIGNMENT: u64 = 1u64

source§

impl<A: Xc3Write, B: Xc3Write> Xc3Write for (A, B)

§

type Offsets<'a> = (<A as Xc3Write>::Offsets<'a>, <B as Xc3Write>::Offsets<'a>) where A: 'a, B: 'a

source§

fn xc3_write<W: Write + Seek>( &self, writer: &mut W, data_ptr: &mut u64 ) -> Xc3Result<Self::Offsets<'_>>

source§

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

§

type Offsets<'a> = Option<<T as Xc3Write>::Offsets<'a>> where Self: 'a

source§

fn xc3_write<W: Write + Seek>( &self, writer: &mut W, data_ptr: &mut u64 ) -> Xc3Result<Self::Offsets<'_>>

source§

fn should_write(&self) -> Option<bool>

source§

const ALIGNMENT: u64 = T::ALIGNMENT

source§

impl<T> Xc3Write for Vec<T>
where T: Xc3Write + 'static,

§

type Offsets<'a> = VecOffsets<<T as Xc3Write>::Offsets<'a>>

source§

fn xc3_write<W: Write + Seek>( &self, writer: &mut W, data_ptr: &mut u64 ) -> Xc3Result<Self::Offsets<'_>>

source§

fn should_write(&self) -> Option<bool>

source§

impl<const N: usize, T> Xc3Write for [T; N]
where T: Xc3Write + 'static,

§

type Offsets<'a> = ()

source§

fn xc3_write<W: Write + Seek>( &self, writer: &mut W, data_ptr: &mut u64 ) -> Xc3Result<Self::Offsets<'_>>

Implementors§