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}