2个版本
0.2.1 | 2020年6月19日 |
---|---|
0.2.0 | 2020年2月12日 |
#1814 in 解析器实现
85KB
1.5K SLoC
rust-lcm-codegen
从LCM类型规范文件生成Rust反/序列化代码。
概览
这是rust-lcm-codec的一个子项目,专门处理代码生成,为LCM编码数据提供了Rust API。它旨在从Cargo build.rs
脚本中使用。
入门
此库需要Rust工具链。Rust中推荐的工具链管理系统是rustup。
一旦安装了rustup,您可以使用以下命令为本地设备构建
cargo build
用法
将以下依赖项添加到您的Rust项目的Cargo.toml
[build-dependencies]
rust-lcm-codegen = "0.1.0"
在您的Rust项目的build.rs
文件中导入rust-lcm-codegen:generate
,并将generate
函数指向您的.lcm
模式以及生成代码的所需输出位置
use rust_lcm_codegen::generate;
use std::env;
use std::fs::File;
use std::io::Read;
use std::path::Path;
fn main() {
println!("cargo:rerun-if-changed=../schemas");
println!("cargo:rerun-if-changed=../../src");
println!("cargo:rerun-if-changed=../../../rust-lcm-codegen");
let schema_files = vec![
"./schemas/example_schema_a.lcm",
"path/to/schemas/example_schema_b.lcm",
];
let out_dir = env::var("OUT_DIR").expect("OUT_DIR");
let out_path = Path::join(Path::new(&out_dir), "generated_lcm.rs");
generate(schema_files, &out_path);
}
测试
要为此项目运行测试,请确保您位于/rust-lcm-codec/rust-lcm-codegen
,然后运行
cargo test
许可证
有关更多详细信息,请参阅LICENSE。
版权所有 2020 Auxon Corporation
根据Apache许可证版本2.0(“许可证”)授权;除非遵守许可证,否则不得使用此文件。您可以在以下位置获得许可证副本:
https://apache.ac.cn/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则根据许可证分发的软件按“原样”基础分发,不提供任何明示或暗示的保证或条件。有关许可证的具体语言、权限和限制,请参阅许可证。
依赖项
~1MB
~19K SLoC