tyt-preferences 0.1.1

Preference loading from .tytconfig files for tyt sub-crates.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use crate::{Dependencies, DeserializePrefs};
use std::{io::Result as IOResult, path::Path};

const CONFIG_FILE_NAME: &str = ".tytconfig";

pub(crate) fn load_prefs_from_dir<T: DeserializePrefs>(
    dependencies: &impl Dependencies,
    dir: &Path,
    key: &str,
) -> IOResult<Option<T>> {
    let path = dir.join(CONFIG_FILE_NAME);
    let Some(bytes) = dependencies.read_file(&path)? else {
        return Ok(None);
    };
    T::deserialize_prefs(&bytes, key)
}