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}