pinix 0.3.2

Progress In Nix - Pacman inspired frontend for Nix
Documentation
use crate::util::toml_ext::{TomlBuilder, TomlExt};

#[test]
fn test_override() {
    let val1 = toml::toml! {
        debug = true
        log = false

        [map1]
        val11 = 42
        val12 = false
    };

    let val2 = toml::toml! {
        [map1.map2]
        val22 = 5.2
    };

    let val3 = toml::toml! {
        log = true

        [map1]
        val11 = 40
    };

    let result = toml::toml! {
        debug = true
        log = true

        [map1]
        val11 = 40
        val12 = false

        [map1.map2]
        val22 = 5.2
    };

    assert_eq!(
        val1.with_overrides(val2).with_overrides(val3),
        result.into()
    );
}

#[test]
fn test_builder() {
    assert_eq!(
        TomlBuilder::default()
            .with_opt(["debug"], Some(true))
            .with_opt(["log"], None::<bool>)
            .with_opt(["map1", "map2", "val"], Some(5.2))
            .build(),
        toml::toml! {
            debug = true

            [map1.map2]
            val = 5.2
        }
        .into()
    );
}