pub unsafe trait MakeHeader<C, W>: InterfaceList
where C: Class, W: Wrapper<C>,
{ const HEADER: Self::Header; }
Expand description

Generates the object header for a given class and list of interfaces.

This trait is implemented for tuples of interface types, and it is used by ComWrapper to construct the object header for a given Rust value.

§Safety

If L::query(I::IID) returns Some(offset) for an Interface I (see InterfaceList), the I value located at offset offset within L::Header must (when reinterpreted as *const I::Vtbl) be a valid pointer to an instance of I::Vtbl.

Required Associated Constants§

source

const HEADER: Self::Header

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<C, W, I0> MakeHeader<C, W> for (I0,)
where C: Class, W: Wrapper<C>, I0: Construct<C, W, { _ }>,

source§

const HEADER: Self::Header = _

source§

impl<C, W, I0, I1> MakeHeader<C, W> for (I0, I1)
where C: Class, W: Wrapper<C>, I0: Construct<C, W, { _ }>, I1: Construct<C, W, { _ }>,

source§

const HEADER: Self::Header = _

source§

impl<C, W, I0, I1, I2> MakeHeader<C, W> for (I0, I1, I2)
where C: Class, W: Wrapper<C>, I0: Construct<C, W, { _ }>, I1: Construct<C, W, { _ }>, I2: Construct<C, W, { _ }>,

source§

const HEADER: Self::Header = _

source§

impl<C, W, I0, I1, I2, I3> MakeHeader<C, W> for (I0, I1, I2, I3)
where C: Class, W: Wrapper<C>, I0: Construct<C, W, { _ }>, I1: Construct<C, W, { _ }>, I2: Construct<C, W, { _ }>, I3: Construct<C, W, { _ }>,

source§

const HEADER: Self::Header = _

source§

impl<C, W, I0, I1, I2, I3, I4> MakeHeader<C, W> for (I0, I1, I2, I3, I4)
where C: Class, W: Wrapper<C>, I0: Construct<C, W, { _ }>, I1: Construct<C, W, { _ }>, I2: Construct<C, W, { _ }>, I3: Construct<C, W, { _ }>, I4: Construct<C, W, { _ }>,

source§

const HEADER: Self::Header = _

source§

impl<C, W, I0, I1, I2, I3, I4, I5> MakeHeader<C, W> for (I0, I1, I2, I3, I4, I5)
where C: Class, W: Wrapper<C>, I0: Construct<C, W, { _ }>, I1: Construct<C, W, { _ }>, I2: Construct<C, W, { _ }>, I3: Construct<C, W, { _ }>, I4: Construct<C, W, { _ }>, I5: Construct<C, W, { _ }>,

source§

const HEADER: Self::Header = _

source§

impl<C, W, I0, I1, I2, I3, I4, I5, I6> MakeHeader<C, W> for (I0, I1, I2, I3, I4, I5, I6)
where C: Class, W: Wrapper<C>, I0: Construct<C, W, { _ }>, I1: Construct<C, W, { _ }>, I2: Construct<C, W, { _ }>, I3: Construct<C, W, { _ }>, I4: Construct<C, W, { _ }>, I5: Construct<C, W, { _ }>, I6: Construct<C, W, { _ }>,

source§

const HEADER: Self::Header = _

source§

impl<C, W, I0, I1, I2, I3, I4, I5, I6, I7> MakeHeader<C, W> for (I0, I1, I2, I3, I4, I5, I6, I7)
where C: Class, W: Wrapper<C>, I0: Construct<C, W, { _ }>, I1: Construct<C, W, { _ }>, I2: Construct<C, W, { _ }>, I3: Construct<C, W, { _ }>, I4: Construct<C, W, { _ }>, I5: Construct<C, W, { _ }>, I6: Construct<C, W, { _ }>, I7: Construct<C, W, { _ }>,

source§

const HEADER: Self::Header = _

source§

impl<C, W, I0, I1, I2, I3, I4, I5, I6, I7, I8> MakeHeader<C, W> for (I0, I1, I2, I3, I4, I5, I6, I7, I8)
where C: Class, W: Wrapper<C>, I0: Construct<C, W, { _ }>, I1: Construct<C, W, { _ }>, I2: Construct<C, W, { _ }>, I3: Construct<C, W, { _ }>, I4: Construct<C, W, { _ }>, I5: Construct<C, W, { _ }>, I6: Construct<C, W, { _ }>, I7: Construct<C, W, { _ }>, I8: Construct<C, W, { _ }>,

source§

const HEADER: Self::Header = _

source§

impl<C, W, I0, I1, I2, I3, I4, I5, I6, I7, I8, I9> MakeHeader<C, W> for (I0, I1, I2, I3, I4, I5, I6, I7, I8, I9)
where C: Class, W: Wrapper<C>, I0: Construct<C, W, { _ }>, I1: Construct<C, W, { _ }>, I2: Construct<C, W, { _ }>, I3: Construct<C, W, { _ }>, I4: Construct<C, W, { _ }>, I5: Construct<C, W, { _ }>, I6: Construct<C, W, { _ }>, I7: Construct<C, W, { _ }>, I8: Construct<C, W, { _ }>, I9: Construct<C, W, { _ }>,

source§

const HEADER: Self::Header = _

source§

impl<C, W, I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10> MakeHeader<C, W> for (I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10)
where C: Class, W: Wrapper<C>, I0: Construct<C, W, { _ }>, I1: Construct<C, W, { _ }>, I2: Construct<C, W, { _ }>, I3: Construct<C, W, { _ }>, I4: Construct<C, W, { _ }>, I5: Construct<C, W, { _ }>, I6: Construct<C, W, { _ }>, I7: Construct<C, W, { _ }>, I8: Construct<C, W, { _ }>, I9: Construct<C, W, { _ }>, I10: Construct<C, W, { _ }>,

source§

const HEADER: Self::Header = _

source§

impl<C, W, I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11> MakeHeader<C, W> for (I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11)
where C: Class, W: Wrapper<C>, I0: Construct<C, W, { _ }>, I1: Construct<C, W, { _ }>, I2: Construct<C, W, { _ }>, I3: Construct<C, W, { _ }>, I4: Construct<C, W, { _ }>, I5: Construct<C, W, { _ }>, I6: Construct<C, W, { _ }>, I7: Construct<C, W, { _ }>, I8: Construct<C, W, { _ }>, I9: Construct<C, W, { _ }>, I10: Construct<C, W, { _ }>, I11: Construct<C, W, { _ }>,

source§

const HEADER: Self::Header = _

source§

impl<C, W, I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12> MakeHeader<C, W> for (I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12)
where C: Class, W: Wrapper<C>, I0: Construct<C, W, { _ }>, I1: Construct<C, W, { _ }>, I2: Construct<C, W, { _ }>, I3: Construct<C, W, { _ }>, I4: Construct<C, W, { _ }>, I5: Construct<C, W, { _ }>, I6: Construct<C, W, { _ }>, I7: Construct<C, W, { _ }>, I8: Construct<C, W, { _ }>, I9: Construct<C, W, { _ }>, I10: Construct<C, W, { _ }>, I11: Construct<C, W, { _ }>, I12: Construct<C, W, { _ }>,

source§

const HEADER: Self::Header = _

source§

impl<C, W, I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13> MakeHeader<C, W> for (I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13)
where C: Class, W: Wrapper<C>, I0: Construct<C, W, { _ }>, I1: Construct<C, W, { _ }>, I2: Construct<C, W, { _ }>, I3: Construct<C, W, { _ }>, I4: Construct<C, W, { _ }>, I5: Construct<C, W, { _ }>, I6: Construct<C, W, { _ }>, I7: Construct<C, W, { _ }>, I8: Construct<C, W, { _ }>, I9: Construct<C, W, { _ }>, I10: Construct<C, W, { _ }>, I11: Construct<C, W, { _ }>, I12: Construct<C, W, { _ }>, I13: Construct<C, W, { _ }>,

source§

const HEADER: Self::Header = _

source§

impl<C, W, I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14> MakeHeader<C, W> for (I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14)
where C: Class, W: Wrapper<C>, I0: Construct<C, W, { _ }>, I1: Construct<C, W, { _ }>, I2: Construct<C, W, { _ }>, I3: Construct<C, W, { _ }>, I4: Construct<C, W, { _ }>, I5: Construct<C, W, { _ }>, I6: Construct<C, W, { _ }>, I7: Construct<C, W, { _ }>, I8: Construct<C, W, { _ }>, I9: Construct<C, W, { _ }>, I10: Construct<C, W, { _ }>, I11: Construct<C, W, { _ }>, I12: Construct<C, W, { _ }>, I13: Construct<C, W, { _ }>, I14: Construct<C, W, { _ }>,

source§

const HEADER: Self::Header = _

Implementors§