forge_util/
config.rs

1use std::ffi::OsStr;
2use std::fs::File;
3use std::path::Path;
4
5use serde_json::Value;
6
7use super::Result;
8
9pub fn save_settings(value: &Value, path: &str) -> Result<()> {
10    let p = match path.is_empty() {
11        true => Path::new("./settings.json"),
12        false => Path::new(path),
13    };
14    if p.extension() != Some(OsStr::new("json")) {
15        bail!("save settings failed as {:?} is not json file", p);
16    }
17
18    let file = File::create(p)?;
19    serde_json::to_writer_pretty(file, value)?;
20    Ok(())
21}
22
23pub fn get_settings(path: &str) -> Result<Value> {
24    let path = match path.is_empty() {
25        true => "./settings.json",
26        false => path,
27    };
28    let file = File::open(Path::new(path))?;
29    let settings = serde_json::from_reader(file)?;
30    Ok(settings)
31}