odict/
config.rs

1use dirs::home_dir;
2use std::{env::var, path::PathBuf, sync::LazyLock};
3
4pub const DEFAULT_CONFIG_DIR: LazyLock<PathBuf> = LazyLock::new(|| {
5    var("ODICT_CONFIG_DIR")
6        .map(|d| PathBuf::from(d))
7        .ok()
8        .unwrap_or_else(|| {
9            home_dir()
10                .expect("Failed to get home directory")
11                .join(".odict")
12        })
13});
14
15#[cfg(test)]
16mod test {
17    use dirs::home_dir;
18
19    use crate::config::DEFAULT_CONFIG_DIR;
20
21    #[test]
22    fn test_get_config_dir() {
23        let home_dir = home_dir().expect("Failed to get home directory");
24        let expected = home_dir.join(".odict");
25
26        assert_eq!(*DEFAULT_CONFIG_DIR, expected);
27    }
28}