User-level data directory. Runtime storage is always rooted at `~/.tracedecay` unless `TRACEDECAY_DATA_DIR` explicitly overrides it.
()
| 353 | /// User-level data directory. Runtime storage is always rooted at |
| 354 | /// `~/.tracedecay` unless `TRACEDECAY_DATA_DIR` explicitly overrides it. |
| 355 | pub fn user_data_dir() -> Option<PathBuf> { |
| 356 | if let Some(path) = std::env::var_os(USER_DATA_DIR_ENV).filter(|path| !path.is_empty()) { |
| 357 | return Some(canonicalize_data_dir(PathBuf::from(path))); |
| 358 | } |
| 359 | let home = dirs::home_dir()?; |
| 360 | Some(canonicalize_data_dir(home.join(TRACEDECAY_DIR))) |
| 361 | } |
| 362 | |
| 363 | fn canonicalize_data_dir(path: PathBuf) -> PathBuf { |
| 364 | if !path.is_absolute() { |