Trait wayland_commons::MessageGroup[][src]

pub trait MessageGroup: Sized {
    type Map;

    const MESSAGES: &'static [MessageDesc];

    fn opcode(&self) -> u16;
fn is_destructor(&self) -> bool;
fn since(&self) -> u32;
fn child<Meta: ObjectMetadata>(
        opcode: u16,
        version: u32,
        meta: &Meta
    ) -> Option<Object<Meta>>;
fn from_raw(msg: Message, map: &mut Self::Map) -> Result<Self, ()>;
fn into_raw(self, send_id: u32) -> Message;
unsafe fn from_raw_c(
        obj: *mut c_void,
        opcode: u32,
        args: *const wl_argument
    ) -> Result<Self, ()>;
fn as_raw_c_in<F, T>(self, f: F) -> T
    where
        F: FnOnce(u32, &mut [wl_argument]) -> T
; }

A group of messages

This represents a group of message that can be serialized on the protocol wire. Typically the set of events or requests of a single interface.

Implementations of this trait are supposed to be generated using the wayland-scanner crate.

Associated Types

type Map[src]

The wrapper type for ObjectMap allowing the mapping of Object and NewId arguments to the object map during parsing.

Loading content...

Associated Constants

const MESSAGES: &'static [MessageDesc][src]

Wire representation of this MessageGroup

Loading content...

Required methods

fn opcode(&self) -> u16[src]

The opcode of this message

fn is_destructor(&self) -> bool[src]

Whether this message is a destructor

If it is, once send or receive the associated object cannot be used any more.

fn since(&self) -> u32[src]

The minimal object version for which this message exists

fn child<Meta: ObjectMetadata>(
    opcode: u16,
    version: u32,
    meta: &Meta
) -> Option<Object<Meta>>
[src]

Retrieve the child Object associated with this message if any

fn from_raw(msg: Message, map: &mut Self::Map) -> Result<Self, ()>[src]

Construct a message from its raw representation

fn into_raw(self, send_id: u32) -> Message[src]

Turn this message into its raw representation

unsafe fn from_raw_c(
    obj: *mut c_void,
    opcode: u32,
    args: *const wl_argument
) -> Result<Self, ()>
[src]

Construct a message of this group from its C representation

Safety

The pointers provided to this function must all be valid pointers from libwayland-client

fn as_raw_c_in<F, T>(self, f: F) -> T where
    F: FnOnce(u32, &mut [wl_argument]) -> T, 
[src]

Build a C representation of this message

It can only be accessed from the provided closure, and this consumes the message.

Loading content...

Implementors

impl MessageGroup for NoMessage[src]

type Map = ()

Loading content...