Hconfig

Crates.ioHconfig
lib.rsHconfig
version1.1.0
sourcesrc
created_at2024-07-24 19:51:36.528972
updated_at2024-08-17 17:09:57.661948
descriptionJson configuration file manager
homepage
repositoryhttps://github.com/hyultis/rust_Hconfig
max_upload_size
id1314282
size28,003
(hyultis)

documentation

README

HConfig

A file configuration manager library that simplify access of json configuration files from a dir.

if a config file is not existing, it will be created. Any var is accessed by a path. Saving use atomic method disallowing partial load from other app/process/etc.

the used serde_json crate is re-exported via "Hconfig::serde_json"

Online Documentation

Master branch

Example

fn main()
{
    // configuration path, the directory need to be existing or created before continuing
	HConfigManager::singleton().setConfPath("./config");
	
	// get a "config", the name "example" mean "./config/example.json"
	let mut config = HConfigManager::singleton().get("example");
	
	// exemple of getting a var and getting a string (parse is from serde_json)
	let myVar: Option<Value> = config.get("name");
	let myString: String = config.get("path/to/myvar").unwrap().as_str().unwrap().to_string();
	
	config.set("path/to/save",JsonValue::String("test is update".to_string()));
	
	// save config modification.
	config.save();
}

you can also check tests.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Commit count: 0

cargo fmt