Trait wayland_client::MessageGroup[][src]

pub trait MessageGroup {
    type Map;

    pub const MESSAGES: &'static [MessageDesc];

    pub fn opcode(&self) -> u16;
pub fn is_destructor(&self) -> bool;
pub fn since(&self) -> u32;
pub fn child<Meta>(
        opcode: u16,
        version: u32,
        meta: &Meta
    ) -> Option<Object<Meta>>
    where
        Meta: ObjectMetadata
;
pub fn from_raw(msg: Message, map: &mut Self::Map) -> Result<Self, ()>;
pub fn into_raw(self, send_id: u32) -> Message;
pub unsafe fn from_raw_c(
        obj: *mut c_void,
        opcode: u32,
        args: *const wl_argument
    ) -> Result<Self, ()>;
pub 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.

Associated Constants

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

Wire representation of this MessageGroup

Required methods

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

The opcode of this message

pub 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.

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

The minimal object version for which this message exists

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

Retrieve the child Object associated with this message if any

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

Construct a message from its raw representation

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

Turn this message into its raw representation

pub 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

pub 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.

Implementors

impl MessageGroup for NoMessage[src][+]

type Map = ()

impl MessageGroup for wayland_client::protocol::wl_buffer::Event[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_buffer::Request[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_callback::Event[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_callback::Request[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_compositor::Event[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_compositor::Request[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_data_device::Event[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_data_device::Request[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_data_device_manager::Event[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_data_device_manager::Request[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_data_offer::Event[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_data_offer::Request[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_data_source::Event[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_data_source::Request[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_display::Event[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_display::Request[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_keyboard::Event[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_keyboard::Request[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_output::Event[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_output::Request[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_pointer::Event[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_pointer::Request[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_region::Event[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_region::Request[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_registry::Event[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_registry::Request[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_seat::Event[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_seat::Request[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_shell::Event[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_shell::Request[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_shell_surface::Event[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_shell_surface::Request[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_shm::Event[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_shm::Request[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_shm_pool::Event[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_shm_pool::Request[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_subcompositor::Event[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_subcompositor::Request[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_subsurface::Event[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_subsurface::Request[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_surface::Event[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_surface::Request[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_touch::Event[src][+]

type Map = ProxyMap

impl MessageGroup for wayland_client::protocol::wl_touch::Request[src][+]

type Map = ProxyMap

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event

impl MessageGroup for Request

impl MessageGroup for Event