Load A Generic JSON Config File In Rust With serde
rust
```cargo
= "1.0"
```
use PathBuf;
use fs;
use Value;
serde_json
// if let Some(config) = load_config(PathBuf::from("config.json")) {
// dbg!(config);
// } else {
// println!("Could not load config");
// }
//pub fn load_config(path: PathBuf) -> Option<Config> {
// if let Ok(data) = fs::read_to_string(path) {
// if let Ok(config) = serde_json::from_str::<Config>(data.as_str()) {
// Some(config)
// } else {
// None
// }
// } else {
// None
// }
// }
This is how I'm loading config options in from a JSON file in Rust :
- This requires the crates :
cargo add serde - - features "derive" cargo add serde _ json
- This approach requires defining the strut the JSON gets loaded into in advance. I think there are ways to do it without that. I prefer making the structure explicit.
- The value that comes back from [TODO: Code shorthand span ] is an option. The code in [TODO: Code shorthand span ] checks to see if it loaded and works from there.