pub trait Serialize {
    // Required methods
    fn serialize<Fds: Extend<OwnedFd>>(self, buf: &mut BytesMut, fds: &mut Fds);
    fn len(&self) -> u16;
    fn nfds(&self) -> u8;
}
Expand description

A serialization trait, implemented by wayland message types.

We can’t use serde, because it doesn’t support passing file descriptors. Most of the serialization code is expected to be generated by scanner.

For now instead of a Serializer trait, we only serialize to bytes and fds, but this might change in the future.

Required Methods§

source

fn serialize<Fds: Extend<OwnedFd>>(self, buf: &mut BytesMut, fds: &mut Fds)

Serialize into the buffered writer. This function returns no errors, failures in seializing are generally program errors, and triggers panicking.

Panic

If there is not enough space in the buffer, this function should panic - the user should have called poll_reserve before serializing, so this indicates programming error. If self contains file descriptors that aren’t OwnedFd, this function panics too.

source

fn len(&self) -> u16

How many bytes will this message serialize to. Including the 8 byte header.

source

fn nfds(&self) -> u8

How many file descriptors will this message serialize to.

Implementors§

impl Serialize for Tilt

impl Serialize for Event

impl Serialize for Close

impl Serialize for Resize

impl Serialize for Event

impl<'a> Serialize for Request<'a>

impl<'a> Serialize for Buttons<'a>

impl Serialize for Event

impl Serialize for Wheel

impl<'a> Serialize for Event<'a>

impl<'a> Serialize for Event<'a>

impl<'a> Serialize for Request<'a>

impl Serialize for Modes

impl Serialize for End

impl Serialize for Reset

impl<'a> Serialize for Event<'a>

impl<'a> Serialize for Handle<'a>

impl<'a> Serialize for Request<'a>

impl Serialize for Done

impl<'a> Serialize for Event<'a>

impl Serialize for Frame

impl<'a> Serialize for Request<'a>

impl Serialize for Slider

impl Serialize for Grab

impl Serialize for Event

impl<'a> Serialize for CommitString<'a>

impl Serialize for Finish

impl Serialize for Button

impl<'a> Serialize for Event<'a>

impl<'a> Serialize for Event<'a>

impl<'a> Serialize for Receive<'a>

impl<'a> Serialize for Done<'a>

impl Serialize for Event

impl Serialize for Tilt

impl Serialize for Button

impl<'a> Serialize for Offer<'a>

impl Serialize for Cancel

impl<'a> Serialize for SurroundingText<'a>

impl Serialize for Event

impl Serialize for Done

impl Serialize for Enter

impl Serialize for Event

impl<'a> Serialize for Event<'a>

impl Serialize for Leave

impl Serialize for Event

impl<'a> Serialize for Request<'a>

impl Serialize for Button

impl<'a> Serialize for Offer<'a>

impl Serialize for Motion

impl Serialize for Sync

impl Serialize for Event

impl Serialize for Enter

impl<'a> Serialize for Event<'a>

impl<'a> Serialize for ModifiersMap<'a>

impl<'a> Serialize for MainDevice<'a>

impl Serialize for Event

impl Serialize for Frame

impl Serialize for Done

impl Serialize for Done

impl Serialize for Keysym

impl Serialize for Event

impl Serialize for Enter

impl Serialize for Id

impl Serialize for Locked

impl<'a> Serialize for Bind<'a>

impl Serialize for Event

impl Serialize for Lock

impl<'a> Serialize for TrancheFormats<'a>

impl Serialize for Event

impl<'a> Serialize for Request<'a>

impl<'a> Serialize for Event<'a>

impl Serialize for Event

impl Serialize for Submit

impl Serialize for Format

impl<'a> Serialize for Event<'a>

impl Serialize for Up

impl<'a> Serialize for SetAppId<'a>

impl Serialize for Wheel

impl Serialize for Done

impl Serialize for Event

impl Serialize for Pong

impl<'a> Serialize for Event<'a>

impl Serialize for Enable

impl<'a> Serialize for Event<'a>

impl<'a> Serialize for SetAppId<'a>

impl Serialize for Motion

impl Serialize for Event

impl Serialize for Begin

impl Serialize for Mode

impl<'a> Serialize for WmCapabilities<'a>

impl Serialize for Down

impl Serialize for Enter

impl<'a> Serialize for CommitString<'a>

impl<'a> Serialize for Request<'a>

impl Serialize for Leave

impl Serialize for Event

impl Serialize for Frame

impl Serialize for Idled

impl Serialize for Type

impl<'a> Serialize for Enter<'a>

impl Serialize for Event

impl Serialize for Event

impl<'a> Serialize for Request<'a>

impl<'a> Serialize for SetFeedback<'a>

impl Serialize for Leave

impl<'a> Serialize for SetAppId<'a>

impl Serialize for Motion

impl Serialize for Key

impl<'a> Serialize for Request<'a>

impl Serialize for Id

impl<'a> Serialize for SetFeedback<'a>

impl<'a> Serialize for Name<'a>

impl<'a> Serialize for Request<'a>

impl Serialize for Move

impl<'a> Serialize for Name<'a>

impl Serialize for Event

impl Serialize for Ping

impl<'a> Serialize for Description<'a>

impl Serialize for Event

impl Serialize for Event

impl Serialize for Event

impl<'a> Serialize for Event<'a>

impl<'a> Serialize for Activate<'a>

impl Serialize for Resize

impl Serialize for Resize

impl Serialize for Offset

impl Serialize for Event

impl Serialize for Event

impl Serialize for Event

impl Serialize for Done

impl Serialize for Source

impl Serialize for Event

impl Serialize for Failed

impl<'a> Serialize for Request<'a>

impl Serialize for Leave

impl Serialize for Event

impl Serialize for Export

impl<'a> Serialize for Geometry<'a>

impl<'a> Serialize for SetTitle<'a>

impl Serialize for Commit

impl Serialize for Event

impl<'a> Serialize for Path<'a>

impl<'a> Serialize for ImportToplevel<'a>

impl Serialize for Event

impl Serialize for Frame

impl<'a> Serialize for PreeditString<'a>

impl Serialize for Stop

impl Serialize for Begin

impl<'a> Serialize for Send<'a>

impl<'a> Serialize for Event<'a>

impl Serialize for Event

impl Serialize for Event

impl<'a> Serialize for Name<'a>

impl Serialize for Angle

impl<'a> Serialize for Event<'a>

impl Serialize for Active

impl<'a> Serialize for Path<'a>

impl<'a> Serialize for Event<'a>

impl Serialize for Down

impl Serialize for End

impl Serialize for Leave

impl<'a> Serialize for Request<'a>

impl Serialize for Resize

impl Serialize for Done

impl Serialize for Event

impl Serialize for Type

impl<'a> Serialize for Event<'a>

impl<'a> Serialize for Receive<'a>

impl Serialize for Reset

impl Serialize for Pong

impl Serialize for Action

impl<'a> Serialize for Request<'a>

impl Serialize for Drop

impl Serialize for Add

impl Serialize for Pong

impl Serialize for Commit

impl Serialize for Leave

impl Serialize for Update

impl Serialize for Update

impl<'a> Serialize for PreeditString<'a>

impl Serialize for Attach

impl Serialize for Slider

impl Serialize for Close

impl<'a> Serialize for PreferredLanguage<'a>

impl Serialize for Motion

impl Serialize for Scale

impl Serialize for Ping

impl<'a> Serialize for Handle<'a>

impl Serialize for Begin

impl Serialize for Event

impl Serialize for Enter

impl<'a> Serialize for SetAppId<'a>

impl Serialize for Action

impl<'a> Serialize for PreeditString<'a>

impl Serialize for Enter

impl Serialize for Resize

impl Serialize for Ring

impl<'a> Serialize for Target<'a>

impl Serialize for Done

impl<'a> Serialize for Global<'a>

impl<'a> Serialize for SetTitle<'a>

impl<'a> Serialize for SetTitle<'a>

impl Serialize for Move

impl<'a> Serialize for Offer<'a>

impl Serialize for Event

impl Serialize for Event

impl Serialize for Event

impl Serialize for Event

impl<'a> Serialize for Request<'a>

impl<'a> Serialize for Event<'a>

impl<'a> Serialize for ModifiersMap<'a>

impl<'a> Serialize for Request<'a>

impl Serialize for Axis

impl<'a> Serialize for SetSurroundingText<'a>

impl Serialize for Event

impl Serialize for Leave

impl<'a> Serialize for Language<'a>

impl<'a> Serialize for Event<'a>

impl Serialize for Stop

impl Serialize for Event

impl<'a> Serialize for Event<'a>

impl<'a> Serialize for Offer<'a>

impl<'a> Serialize for Description<'a>

impl Serialize for Event

impl<'a> Serialize for Name<'a>

impl<'a> Serialize for Event<'a>

impl<'a> Serialize for Error<'a>

impl<'a> Serialize for Send<'a>

impl<'a> Serialize for Event<'a>

impl Serialize for Motion

impl Serialize for Frame

impl<'a> Serialize for SetClass<'a>

impl<'a> Serialize for Configure<'a>

impl Serialize for Group

impl Serialize for Add

impl Serialize for Close

impl<'a> Serialize for Accept<'a>

impl Serialize for Event

impl Serialize for Keymap

impl Serialize for Commit

impl<'a> Serialize for Configure<'a>

impl<'a> Serialize for SetSurroundingText<'a>

impl Serialize for Keysym

impl Serialize for Done

impl Serialize for Event

impl<'a> Serialize for Import<'a>

impl<'a> Serialize for Request<'a>

impl Serialize for Done

impl Serialize for Format

impl<'a> Serialize for Path<'a>

impl Serialize for Event

impl Serialize for Ping

impl Serialize for Done

impl Serialize for Damage

impl Serialize for Down

impl Serialize for Frame

impl Serialize for Move

impl Serialize for Strip

impl<'a> Serialize for Request<'a>

impl<'a> Serialize for Request<'a>

impl Serialize for Move

impl<'a> Serialize for Language<'a>

impl<'a> Serialize for Event<'a>

impl Serialize for Event

impl Serialize for Ping

impl Serialize for End

impl<'a> Serialize for Name<'a>

impl Serialize for Shape

impl<'a> Serialize for CommitString<'a>

impl Serialize for DrmFd

impl<'a> Serialize for Request<'a>

impl<'a> Serialize for Event<'a>

impl Serialize for Event

impl<'a> Serialize for Configure<'a>

impl Serialize for Button

impl<'a> Serialize for SetTitle<'a>

impl Serialize for Done

impl<'a> Serialize for Event<'a>

impl Serialize for Up

impl Serialize for Event

impl Serialize for Create

impl<'a> Serialize for SetFeedback<'a>

impl Serialize for Key

impl Serialize for Pong

impl Serialize for Locked

impl Serialize for Grab

impl<'a> Serialize for Name<'a>

impl Serialize for Frame

impl Serialize for Up

impl Serialize for Done

impl Serialize for Source

impl<'a> Serialize for Description<'a>

impl Serialize for Event