pub trait SeatExt: 'static {
// Required methods
fn capabilities(&self) -> SeatCapabilities;
fn devices(&self, capabilities: SeatCapabilities) -> Vec<Device>;
fn display(&self) -> Display;
fn keyboard(&self) -> Option<Device>;
fn pointer(&self) -> Option<Device>;
fn tools(&self) -> Vec<DeviceTool>;
fn connect_device_added<F: Fn(&Self, &Device) + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_device_removed<F: Fn(&Self, &Device) + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_tool_added<F: Fn(&Self, &DeviceTool) + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_tool_removed<F: Fn(&Self, &DeviceTool) + 'static>(
&self,
f: F
) -> SignalHandlerId;
}