9个版本

0.3.5 2023年11月3日
0.3.0 2023年7月28日
0.2.0 2022年3月1日
0.1.7 2022年2月23日

#423 in Rust模式

每月 23 次下载

MIT 协议

180KB
3.5K SLoC

CRustAL: 从Rust汇编生成C/C++代码的库

此crate提供了一个具有构建器API的库,用于从Rust组装C/C++代码。

许可证

MIT许可证

贡献

欢迎代码贡献。提交者必须对所有提交使用sign-off功能,以确认提交者有权在不附加任何额外条款或条件的情况下,根据许可证贡献代码。

查看AUTHORS文件以获取贡献者列表。

致谢

此crate受到codegen-rs`的启发

安装

要使用crustal,请将仓库克隆到您的Rust项目的lib文件夹中,或者使用crates.io

用法

您可以通过将以下行添加到Cargo.toml文件来使用crustal

[dependencies]
crustal

接下来,创建一个Scope并使用构建器API在该范围内创建元素。最后,调用Scope::to_string()以获取格式化的C代码字符串。

use crustal as CG;

let mut scope = CG::Scope::new();
scope.set_filename("include/my_file.hpp");

scope.push_doc_str("WARNING: This is auto-generated comment\n");
scope.new_include("stdio.h", true);

scope.new_class("MyClass")
        .set_base("StateBase", CG::Visibility::Public)
        .push_attribute(CG::Attribute::new(
        "name",
        CG::Type::new(CG::BaseType::new_int(8)),
    ));

println!("{}", scope.to_string());

产生以下输出

/// WARNING: This is auto-generated comment
#include <stdio.h>
class MyClass : public StateBase {

    private:
    uint64_t name;
}

无运行时依赖项