13 次重大发布
使用旧的 Rust 2015
0.14.0 | 2024 年 7 月 20 日 |
---|---|
0.12.0 | 2023 年 6 月 11 日 |
0.10.0 | 2023 年 2 月 19 日 |
0.9.0 | 2022 年 12 月 6 日 |
0.2.0 | 2018 年 9 月 10 日 |
#631 在 解析器实现
18,617 每月下载量
在 61 个 crate 中使用(通过 vulkano)
175KB
4.5K SLoC
vk-parse
vk-parse
是一个 Rust crate,用于解析 Vulkan API 注册 XML 并将其转换为 Rust 表示。
此 crate 提供了一个库,用于解析 Vulkan 注册 XML,并提供其自己的无损失表示或将其转换为 vkxml 的结构。
使用方法
要开始,你需要 vk.xml
文件,该文件用于生成 Vulkan 头文件,存储在 Vulkan-Docs 仓库中。
之后,在你的 Rust 项目中
Cargo.toml
[dependencies]
vk-parse = "0.14"
main.rs
extern crate vk_parse;
use std::path::Path;
fn main() {
let (registry, _errors) = vk_parse::parse_file(Path::new("vk.xml")).unwrap();
println!("{:?}", registry);
}
从 vkxml 转换为结构是可选的,必须使用功能启用。
Cargo.toml
[dependencies]
vk-parse = { version = "0.14", features = ["vkxml-convert"] }
vkxml = "0.3"
main.rs
extern crate vk_parse;
extern crate vkxml;
use std::path::Path;
fn main() {
// You can either parse normal structures and convert them into vkxml format ...
let (registry_ir, _errors) = vk_parse::parse_file(Path::new("vk.xml")).unwrap();
println!("{:?}", registry_ir);
let registry_vkxml: vkxml::Registry = registry_ir.into();
println!("{:?}", registry_vkxml);
// ... or do both in single call.
let registry_vkxml = vk_parse::parse_file_as_vkxml(Path::new("vk.xml")).unwrap();
println!("{:?}", registry_vkxml);
}
许可证
此软件双重许可 Apache-2.0/MIT,与 Rust 本身相同。
依赖项
~245–430KB