herta-lib 1.1.8

Backend library for herta-bin
Documentation
use super::get_root_dir;
use serde::{de::DeserializeOwned, Serialize};
use serde_json::{from_reader, to_writer, Error as SerdeError};
use std::io::prelude::{Read, Write};
use std::path::PathBuf;

pub fn get_config<C, R>(reader: R) -> Result<C, SerdeError>
where
    C: DeserializeOwned,
    R: Read,
{
    from_reader(reader)
}

pub fn write_config<C, W>(writer: &mut W, object: &C) -> Result<(), SerdeError>
where
    W: Write,
    C: Serialize + ?Sized,
{
    to_writer(writer, object)
}

pub fn get_config_dir(name: &str) -> PathBuf {
    get_root_dir(name, Some("config"))
}

pub fn get_main_config(name: &str) -> PathBuf {
    get_root_dir::<String>(name, None).join("config.json")
}