2个版本
0.1.1 | 2022年6月26日 |
---|---|
0.1.0 | 2022年6月26日 |
#831 in 编程语言
91KB
1.5K SLoC
Rust Codegen
Rust Codegen旨在通过简单的构建器API帮助你以编程方式生成Rust代码。
安装
要使用rust-codegen
,请将以下内容添加到你的Cargo.toml
文件中
[dependencies]
rust-codegen
用法
尽管用法可能因需求而异,但基本流程是创建一个Scope
并添加所需的内容。下面是一个创建具有几个字段的结构的简单示例。
use rust_codegen::Scope;
// A `Scope` is the root of the builder. Everything should be added on to it.
let mut scope = Scope::new();
// Creates a new struct named Foo that derives from `Debug` and have two fields.
scope.new_struct("Foo")
.derive("Debug")
.field("one", "usize")
.field("two", "String");
// Once turned into a string, the above looks like:
// #[derive(Debug)]
// struct Foo {
// one: usize,
// two: String,
// }
println!("{}", scope.to_string());
请确保查看所有可用功能及其示例的文档。
鸣谢
这最初是carllerche的codegen存储库的分支,并进行了一些更新。然而,由于更新量很大,并且我需要将其发布到crates.io以用于其他项目,所以我将其作为一个独立的项目。
许可证
用法
- 创建一个
Scope
实例。 - 使用构建器API向作用域添加元素。
- 调用
Scope::to_string()
以获取生成的代码。
例如
注意:你不应该依赖于格式化输出,因为它非常基础。相反,你应该通过rustfmt
运行生成的代码。
依赖关系
~1MB
~16K SLoC