Expand description
Platform-agnistic standard directory locations.
xdir
is a minimal and opinionated library for retrieving
platform-agnostic XDG-compliant standard locations of directories.
§Usage
Calling a directory’s corresponding function will return its standard
location if it can be detected. If the path could not be found (most likely
due to misconfiguration of environment variables), the function call will
fail, returning None
.
§Directories
Function | Environment | Default |
---|---|---|
home | $HOME | Platform-specific |
cache | $XDG_CACHE_HOME | $HOME/.cache |
config | $XDG_CONFIG_HOME | $HOME/.config |
bin | $XDG_BIN_HOME | $HOME/.local/bin |
data | $XDG_DATA_HOME | $HOME/.local/share |
state | $XDG_STATE_HOME | $HOME/.local/state |
runtime | $XDG_RUNTIME_DIR | None |
§Examples
To get the configuration file of an application:
fn config() -> PathBuf {
xdir::config()
// Append the application name to the path to avoid cluttering the
// general config directory.
.map(|path| path.join("myapp"))
// If the standard path could not be found (e.g.`$HOME` is not set),
// default to the current directory.
.unwrap_or_default()
// Finally, append the config file to the directory path.
.join("config.toml")
}
Functions§
- Returns the path to the user’s executable directory.
- Returns the path to the user’s cache directory.
- Returns the path to the user’s config directory.
- Returns the path to the user’s data directory.
- Returns the path of the current user’s home directory using environment variables or OS-specific APIs.
- Returns the path to the user’s runtime directory.
- Returns the path to the user’s state directory.