#ini #config-file #persistence

iii

Simple configuration library,Easier than .ini

11 releases (5 stable)

1.0.4 Aug 29, 2023
1.0.3 Apr 4, 2023
1.0.2 Feb 24, 2023
0.1.5 Feb 1, 2023
0.1.1 Jan 31, 2023

#375 in Configuration

36 downloads per month

MIT/Apache

9KB
133 lines

iii

Introduce

Simple configuration library,Easier than .ini

Config file format

default.iii
c1 = value
#2222
c2 = 233
c3 = ccc3
c5 = 5c
Create new config file
let mut cc = iii::BufData::new();
cc.chgvalue("c1", "value");
cc.chgvalue("c2", 666);
cc.chgvalue("c3", "value3");
if let Ok(_) = cc.save(None){
    println!("file write success")
};

Read config file and save

if let Ok(mut cc) = iii::BufData::loadfromiii("default.iii"){
    cc.chgvalue("c3", "ccc3");
    cc.chgvalue("c5", "5c");
    if let Ok(_) = cc.save(None){
        println!("file write success")
    };
};

Read value by key

if let Ok(cc) = iii::BufData::loadfromiii("default.iii"){
    if let Some(v) = cc.getvalue::<String>("c2"){
        println!("K:{},V:{}","c2",v);
    }
    if let Some(v) = cc.getvalue::<String>("c5"){
        println!("K:{},V:{}","c5",v);
    }
};

Save config file

let mut cc = iii::BufData::new();
cc.chgvalue("c1", "value");
if let Ok(_) = cc.save(None){
    println!("file write success")
};
if let Ok(_) = cc.save(Some("file1.iii")){
    println!("file write success")
};

Other

If you want to read the numeric type,exp like:

let mut cc = iii::BufData::new();
cc.chgvalue("c2", "33");
cc.chgvalue("c4", true);
if let Ok(number) = cc.getvalue::<u32>("c2"){
    println!("number:");
    assert!(33==number);
};
if let Ok(var) = cc.getvalue::<bool>("c4"){
    println!("bool:");
    assert!(true==var);
}

No runtime deps