#config-file #plain-text #hash-map #readable #import #machine #cfg

cfg_mgr

此crate提供了一个简单的方法,将纯文本配置文件导入到机器可读的结构(HashMap)中。

1个不稳定发布

0.1.0 2022年8月11日

#49 in #readable

GPL-3.0-only

15KB
66

cfg_mgr: Rust的基本配置管理器

此crate旨在将纯文本配置文件导入到机器可读的结构中。

其用法非常简单,只需在一个格式正确的配置文件上调用load(path :&str),其所有数据都将导入到一个包含String键和CfgData结构形式的值的HashMap中。用户需要事先了解是否要访问数字或字符串字段。

默认情况下,所有可解析的数值都将解析为f64类型的数字字段。多个数值条目必须由逗号分隔。如果某个字段的值无法解析,则结果将输出到CfgData的字符串字段中。

配置文件的正确格式如下

文件: config.cfg


#This is a comment
foo = 3.1415
bar = 1e-3 # comment
foobar = 3.1415, 1e-3 # multiple arguments are allowed

path = some/path/example.txt # this can't be parsed as f64 so it's a string

示例

以下示例加载名为"config.cfg"的文件,并打印出其解析内容。

use cfg_mgr;

fn main() {
    // Open a configuration file (ignoring errors)
    let config = cfg_mgr::load("config.cfg").unwrap();

    // Loop over all the keys of the configuration HashMap
    for key in config.keys() {
        print!("{}: ", key);

        // Print all numerical values (if any) for a particular key
        for i in 0..config.get(key).unwrap().numeric.len(){
            print!("{}, ", config.get(key).unwrap().numeric[i]);
        }

        // Print the string data of a key (if any) (separate using ;)
        println!(";{}", config.get(key).unwrap().string);
    }
}

结果

path: ;some/path/example.txt
foo: 3.1415, ;
foobar: 3.1415, 0.001, ;
bar: 0.001, ;

无运行时依赖