#codegen #builder #generate #api #scope #aims #help

rust-codegen

一个用于生成Rust代码的简单构建器API

2个版本

0.1.1 2022年6月26日
0.1.0 2022年6月26日

#831 in 编程语言

MIT 许可证

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以用于其他项目,所以我将其作为一个独立的项目。

许可证

MIT

用法

  1. 创建一个Scope实例。
  2. 使用构建器API向作用域添加元素。
  3. 调用Scope::to_string()以获取生成的代码。

例如

注意:你不应该依赖于格式化输出,因为它非常基础。相反,你应该通过rustfmt运行生成的代码。

依赖关系

~1MB
~16K SLoC