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_auto_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            [wayland_protocols::wp::text_input::zv3]
40        );
41    }
42}