#generator #codegen #json-xml #code #json-api #generate-json #gencode

codespawn

C++和Rust代码生成器。支持使用XML和JSON定义API。

13次发布

使用旧的Rust 2015

0.3.3 2017年5月8日
0.3.2 2016年8月31日
0.3.0 2016年7月26日
0.2.1 2016年7月22日
0.0.1 2016年6月24日

#1896 in 开发工具

34次每月下载

MIT/Apache

52KB
1K SLoC

Codespawn

Crates.io Documentation Build Status Build status Coverage Status

Codespawn是一个基本的C++和Rust代码生成器。可以使用JSON或XML定义所需的API,该软件包支持从文件或字符串中读取。目前可以生成枚举、结构体、函数、函数指针、变量和位标志,并具有所有适用的属性和属性。

该软件包是为ProDBG创建的一个辅助工具。有关如何构建API定义的说明,请参阅示例XML

文档

用法

# Cargo.toml
[dependencies]
codespawn = "0.3"

示例

extern crate codespawn;

fn main()
{
    // generate from XML definition
    let raw_code = codespawn::from_xml("examples/sample.xml").unwrap();
    // generate from JSON definition
    //let raw_code = codespawn::from_json("examples/sample.json").unwrap();

    // generate code, store as String
    let cpp_code  = raw_code.to_cpp().unwrap().to_string();
    let rust_code = raw_code.to_rust().unwrap().to_string();

    // generate and save directly to file
    raw_code.to_cpp().unwrap().to_file("sample.cpp");
    raw_code.to_rust().unwrap().to_file("sample.rs");
}

构建说明

cargo build
cargo run --example xml
cargo run --example json

这将运行示例,它将使用示例XML定义生成代码并保存到文件中。

许可证

以下任一许可证下授权:

依赖项

~545KB
~12K SLoC