5个不稳定版本

0.2.0 2024年2月24日
0.1.1 2024年2月24日
0.1.0 2024年2月24日
0.0.2 2024年2月23日
0.0.1 2024年2月23日

#172 in 模板引擎

Download history 3/week @ 2024-03-09 27/week @ 2024-03-30 5/week @ 2024-04-06

每月 69 次下载

MIT 协议

15KB
212

deps-gen

Cargo.lock 到生成的文件。

为什么?

目标是使用Cargo.lock中的依赖项从模板生成文件。

如何?

构建

Cargo.toml 中添加以下行

[build-dependencies]
deps-gen = "*"

然后在你的 build.rs

use deps_gen;

fn main() {
    gen_deps();
    // // or
    // let mut configuration = deps::Configuration::new()
    // // do some changes to configuration here
    // deps::gen_with_configuration(configuration);
}

默认配置将使用 src/deps.template.rs 文件生成 src/deps.rs

模板化

该库使用handlebars,默认支持支持的语法。支持的字段有

  • dependencies,一个包含以下值的数组
    • name
    • version
    • authors
    • id
    • source
    • description
    • dependencies
    • license
    • license_file
    • targets
    • features
    • manifest_path
    • categories
    • keywords
    • readme
    • repository
    • homepage
    • documentation
    • edition

有关字段详情,请参阅Rust清单参考

请注意,在模板处理之后,//{} 被替换为  (一个空字符串)。这允许进行清理。

示例

deps.template.rs:

#[allow(dead_code)]

pub struct License {
    pub name: &'static str,
    pub version: &'static str,
}

impl License {
    pub fn all() -> Vec<Self> {
        vec![
            //{}{{#each dependencies}}
            Self {
                name: "{{name}}",
                version: "{{version}}",
            },
            //{}{{/each}}
        ]
    }
}

依赖项

~3–4.5MB
~87K SLoC