#ini #parser #config-parser #configuration #serialization

simpleini

SimpleIni 是一个非常简单的库,用于解析和写入 INI 格式

3 个版本

0.1.2 2021 年 9 月 19 日
0.1.1 2021 年 6 月 21 日
0.1.0 2021 年 6 月 21 日

#2920 in 解析器实现

每月 26 次下载

MIT/Apache

16KB
245

SimpleIni

SimpleIni 是一个非常简单的库,用于解析和写入 INI 格式

许可证

SimpleIni 采用 MIT 许可证或 Apache-2 许可证,由您自行决定。

示例

解析 INI 文件

use simpleini::Ini;

fn main() {
    let path = "/tmp/example.ini";
    let ini = match Ini::from_file(path) {
        Ok(ini) => ini,
        Err(e) => {
            eprintln!("Failed to parse /tmp/example.ini: {:?}", e);
            std::process::exit(1);
        }
    };
}

创建新的 INI 文件

use simpleini::{Ini, IniSection};

// These are only needed when using Ini#add_section_with_values
use std::collections::HashMap;
use std::iter::FromIterator;
use std::array::IntoIter;

fn main() {
    let mut ini = Ini::new();
    ini.set("some_global", "VALUE");

    // Manually (and verbosely) create a section
    let mut section = IniSection::new("SectionA");
    section.set("some_section_variable", "OTHER_VALUE");
    ini.add_section(section);

    // Create a Section from a name and a HashMap<AsRef<str>, AsRef<str>>
    ini.add_section_with_values("SectionB", HashMap::from_iter(IntoIter::new([("var_b", "value_b")])));

    // Write the INI file to disk
    match ini.to_file("/tmp/example.ini") {
        Ok(()) => {},
        Err(e) => {
            eprintln!("Failed to write INI to disk: {:?}", e);
            std::process::exit(1);
        }
    };
}

依赖项

~2.2–3MB
~54K SLoC