herta/data/
config.rs

1use super::get_root_dir;
2use serde::{de::DeserializeOwned, Serialize};
3use serde_json::{from_reader, to_writer, Error as SerdeError};
4use std::io::prelude::{Read, Write};
5use std::path::PathBuf;
6
7pub fn get_config<C, R>(reader: R) -> Result<C, SerdeError>
8where
9    C: DeserializeOwned,
10    R: Read,
11{
12    from_reader(reader)
13}
14
15pub fn write_config<C, W>(writer: &mut W, object: &C) -> Result<(), SerdeError>
16where
17    W: Write,
18    C: Serialize + ?Sized,
19{
20    to_writer(writer, object)
21}
22
23pub fn get_config_dir(name: &str) -> PathBuf {
24    get_root_dir(name, Some("config"))
25}
26
27pub fn get_main_config(name: &str) -> PathBuf {
28    get_root_dir::<String>(name, None).join("config.json")
29}