143 个版本
0.31.4 | 2024 年 7 月 16 日 |
---|---|
0.31.2 | 2024 年 5 月 31 日 |
0.31.1 | 2024 年 1 月 29 日 |
0.31.0 | 2023 年 9 月 2 日 |
0.2.0 | 2015 年 11 月 19 日 |
在 GUI 中排名第 1079
每月下载量 497,491
用于 1,432 个 Crates(17 个直接使用)
97KB
2.5K SLoC
wayland-scanner
此 crate 提供用于生成与 Wayland XML 协议规范关联的 Rust 代码的过程宏,用于与 wayland-client
、wayland-server
和 wayland-backend
Crates 一起使用。
在尝试使用此 crate 之前,您可能需要检查您想要使用的协议扩展是否已经在 wayland-protocols
crate 中公开。
lib.rs
:
Wayland 协议代码生成机制
此 crate 提供用于生成与 Wayland XML 协议规范关联的 Rust 代码的过程宏,用于与 wayland-client
、wayland-server
和 wayland-backend
Crates 一起使用。
在尝试使用此 crate 之前,您可能需要检查您想要使用的协议扩展是否已经在 wayland-protocols
crate 中公开。
示例用法
以下是一个用于生成自定义协议客户端代码的模板。服务器端相同,只需将 client
替换为 server
。XML 文件的路径是相对于 crate 根目录的。
// Generate the bindings in their own module
pub mod my_protocol {
use wayland_client;
// import objects from the core protocol if needed
use wayland_client::protocol::*;
// This module hosts a low-level representation of the protocol objects
// you will not need to interact with it yourself, but the code generated
// by the generate_client_code! macro will use it
pub mod __interfaces {
// import the interfaces from the core protocol if needed
use wayland_client::protocol::__interfaces::*;
wayland_scanner::generate_interfaces!("./path/to/the/protocol.xml");
}
use self::__interfaces::*;
// This macro generates the actual types that represent the wayland objects of
// your custom protocol
wayland_scanner::generate_client_code!("./path/to/the/protocol.xml");
}
依赖项
~1.5MB
~23K SLoC