Trait MakeHeader

Source
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

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<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§