Skip to main content

wayland_protocols_experimental/
lib.rs

1//! This crate provides Wayland object definitions for experimental protocol extensions.
2//! 
3//! This crate provides bindings for protocols that are officially evaluated,
4//! but not recommended for use outside of testing.
5//!
6//! These bindings are built on top of the crates wayland-client and wayland-server.
7//!
8//! Each protocol module contains a `client` and a `server` submodules, for each side of the
9//! protocol. The creation of these modules (and the dependency on the associated crate) is
10//! controlled by the two cargo features `client` and `server`.
11
12#![warn(missing_docs)]
13#![forbid(improper_ctypes, unsafe_op_in_unsafe_fn)]
14#![cfg_attr(docsrs, feature(doc_cfg))]
15#![cfg_attr(rustfmt, rustfmt_skip)]
16
17#[macro_use]
18mod protocol_macro;
19
20pub mod session_management {
21    //! The xx_session_manager protocol declares interfaces necessary to
22    //! allow clients to restore toplevel state from previous executions.
23
24    #[allow(missing_docs)]
25    pub mod v1 {
26        wayland_protocol!(
27            "./protocols/xx-session-management/xx-session-management-v1.xml",
28            [wayland_protocols::xdg::shell]
29        );
30    }
31}
32
33pub mod input_method {
34    //! This protocol allows applications to act as input methods for compositors.
35    #[allow(missing_docs)]
36    pub mod v1 {
37        wayland_protocol!(
38            "./protocols/xx-input-method/xx-input-method-v2.xml",
39            [crate::text_input::v3]
40        );
41    }
42}
43
44pub mod keyboard_filter {
45    //! This protocol allows applications to intercept and filter keyboard events.
46    #[allow(missing_docs)]
47    pub mod v3 {
48        wayland_protocol!(
49            "./protocols/xx-keyboard-filter/xx-keyboard-filter-v1.xml",
50            [crate::input_method::v1]
51        );
52    }
53}
54
55pub mod text_input {
56    //! This protocol allows applications to receive text composition events.
57    #[allow(missing_docs)]
58    pub mod v3 {
59        wayland_protocol!(
60            "./protocols/xx-text-input/xx-text-input-v3.xml",
61            []
62        );
63    }
64}