Crates.io | Hconfig |
lib.rs | Hconfig |
version | 1.1.0 |
source | src |
created_at | 2024-07-24 19:51:36.528972 |
updated_at | 2024-08-17 17:09:57.661948 |
description | Json configuration file manager |
homepage | |
repository | https://github.com/hyultis/rust_Hconfig |
max_upload_size | |
id | 1314282 |
size | 28,003 |
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"
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.
Licensed under either of
at your option.
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.