#分层 #生成 #字符串 #常量 #文件格式 #输入文件 #生成

构建 keystring_generator

用于从简单的文件格式生成具有分层字符串常量的 Rust 代码的工具

3 个版本

0.1.2 2022 年 6 月 16 日
0.1.1 2022 年 6 月 15 日
0.1.0 2022 年 6 月 15 日

#344 in 构建工具

MIT 许可证

13KB
185

keystring_generator

这是一个从简单文件生成具有分层字符串常量的 Rust 代码的工具

用法

该库公开了两个函数

generate(input: &PathBuf) -> Result<(), String>

generate_with_config(input: &PathBuf,output_dir: Option<&PathBuf>, ) -> Result<(), String>

请查阅 generate_with_config 的文档以了解参数的解释。调用这些方法将在输出目录中创建一个名为 constants.rs 的文件(默认:generated/keygen)。此文件必须包含在您的项目中才能使用。

输入格式

输入格式有两种变体:分层或枚举。

分层变体类似于 yaml,基于缩进。

您可以使用制表符和空格进行缩进,但这是不建议的。如果同时使用,则制表符被视为 4 个空格!因此,请只使用其中一种。

一个分层输入文件的示例如下

hierarchical
  keys
    with
      five
        layers
      six
        hierarchical
          layers

枚举变体列出了所有所需的密钥,使用 . 作为分隔符,如下所示

hierarchical.keys
hierarchical.keys.with.five.layers
hierarchical.keys.with.six.hierarchical.layers

(子键的冗余枚举是可能的但不是必要的)。

您还可以通过创建如下所示的输入文件来混合这些变体

hierarchical.keys.with
  five.layers
  six
    hierarchical
      layers

输出格式

上述输入的输出文件将看起来(从语法上)如下所示

#![allow(dead_code)]
#![allow(non_upper_case_globals)]

pub mod hierarchical {
    const _BASE : &str = "hierarchical";
    pub mod keys {
        pub const _BASE: &str = "hierarchical.keys";

        pub mod with {
            pub const _BASE: &str = "hierarchical.keys.with";

            pub mod five {
                pub const _BASE: &str = "hierarchical.keys.with.five";
                pub const layers: &str = "hierarchical.keys.with.five.layers";
            }

            pub mod six {
                pub const _BASE: &str = "hierarchical.keys.with.six";

                pub mod hierarchical {
                    pub const _BASE: &str = "hierarchical.keys.with.six.hierarchical";
                    pub const layers: &str = "hierarchical.keys.with.six.hierarchical.layers";
                }
            }
        }
    }
}

因此您可以使用如下键:constants::hierarchical::keys::with::five::layersconstants::hierarchical::keys::BASE

无运行时依赖