Trait wayland_client::MessageGroup
source · pub trait MessageGroup: Sized {
type Map;
const MESSAGES: &'static [MessageDesc];
// Required methods
fn opcode(&self) -> u16;
fn is_destructor(&self) -> bool;
fn since(&self) -> u32;
fn child<Meta>(
opcode: u16,
version: u32,
meta: &Meta
) -> Option<Object<Meta>>
where Meta: ObjectMetadata;
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;
}
Expand description
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.
Required Associated Types§
Required Associated Constants§
sourceconst MESSAGES: &'static [MessageDesc]
const MESSAGES: &'static [MessageDesc]
Wire representation of this MessageGroup
Required Methods§
sourcefn is_destructor(&self) -> bool
fn is_destructor(&self) -> bool
Whether this message is a destructor
If it is, once send or receive the associated object cannot be used any more.
sourcefn child<Meta>(opcode: u16, version: u32, meta: &Meta) -> Option<Object<Meta>>where
Meta: ObjectMetadata,
fn child<Meta>(opcode: u16, version: u32, meta: &Meta) -> Option<Object<Meta>>where
Meta: ObjectMetadata,
Retrieve the child Object
associated with this message if any
sourcefn from_raw(msg: Message, map: &mut Self::Map) -> Result<Self, ()>
fn from_raw(msg: Message, map: &mut Self::Map) -> Result<Self, ()>
Construct a message from its raw representation
sourceunsafe fn from_raw_c(
obj: *mut c_void,
opcode: u32,
args: *const wl_argument
) -> Result<Self, ()>
unsafe fn from_raw_c( obj: *mut c_void, opcode: u32, args: *const wl_argument ) -> Result<Self, ()>
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
sourcefn as_raw_c_in<F, T>(self, f: F) -> T
fn as_raw_c_in<F, T>(self, f: F) -> T
Build a C representation of this message
It can only be accessed from the provided closure, and this consumes the message.