Expand description
§wl-data-control-protocol-evt
Implementation of ext-data-control Wayland protocol that is:
- pollable
- event based
§API
Full examples can be found in poll.rs and tokio.rs.
Here’s a quick poll-based API overview:
use wl_data_control_protocol_evt::{ExtDataControlEvent, ExtDataControlStream};
let mut stream = ExtDataControlStream::new().unwrap();
let fd = stream.as_fd();
loop {
poll([fd], IN)?;
// read
let events = stream.drain()?;
for event in events {
if let ExtDataControlEvent::Received(text) = event {
println!("copied {text}")
}
}
// or write
stream.offer_text("try pasting this").unwrap()
}For async IO you can use something like AsyncFd:
let stream = ExtDataControlStream::new()?;
let async_fd = AsyncFd::new(stream.as_raw_fd())?;
loop {
let mut guard = async_fd.readable().await?;
let events = stream.drain()?;
guard.clear_ready();
// process `events`
}Structs§
- Epoll
Error - An error returned from
epoll - ExtData
Control Stream - The main object to send and receive events over
ext-data-controlWayland protocol
Enums§
- ExtData
Control Connect Error - An error that may occur when establishing connection to Wayland
- ExtData
Control Event - An event. A collection of events is returned from
ExtDataControlStream::drain(). - ExtData
Control Read Error - An error that may occur during reading from Wayland socket