odict 3.3.0

A blazingly-fast dictionary file format for human languages
Documentation
use dirs::home_dir;
use std::{env::var, path::PathBuf, sync::LazyLock};

pub static DEFAULT_CONFIG_DIR: LazyLock<PathBuf> = LazyLock::new(|| {
    var("ODICT_CONFIG_DIR")
        .map(PathBuf::from)
        .ok()
        .unwrap_or_else(|| {
            home_dir()
                .expect("Failed to get home directory")
                .join(".odict")
        })
});

#[cfg(test)]
mod test {
    use dirs::home_dir;

    use crate::config::DEFAULT_CONFIG_DIR;

    #[test]
    fn test_get_config_dir() {
        let home_dir = home_dir().expect("Failed to get home directory");
        let expected = home_dir.join(".odict");

        assert_eq!(*DEFAULT_CONFIG_DIR, expected);
    }
}