Platform-specific config, cache, and data directory paths for MoonBit (XDG on Linux, conventions on macOS/Windows)
Dependencies
moon add moonrockz/directories// BaseDirs: user-level cache, config, data paths
match @directories.BaseDirs::new() {
Some(base) => {
base.home_dir() // e.g. /home/alice
base.config_dir() // e.g. /home/alice/.config
base.cache_dir() // e.g. /home/alice/.cache
}
None => () // HOME not set
}
// ProjectDirs: app-specific paths
match @directories.ProjectDirs::from("com", "Foo Corp", "Bar App") {
Some(proj) => {
proj.config_dir() // e.g. /home/alice/.config/barapp
proj.cache_dir()
}
None => ()
}pub struct BaseDirs {
home_dir : String
cache_dir : String
config_dir : String
config_local_dir : String
data_dir : String
data_local_dir : String
executable_dir : String?
preference_dir : String
runtime_dir : String?
state_dir : String?
}pub struct ProjectDirs {
project_path : String
cache_dir : String
config_dir : String
config_local_dir : String
data_dir : String
data_local_dir : String
preference_dir : String
runtime_dir : String?
state_dir : String?
}fn ProjectDirs::from(qualifier : String, organization : String, application : String) -> ProjectDirs?pub struct UserDirs {
home_dir : String
audio_dir : String?
desktop_dir : String?
document_dir : String?
download_dir : String?
font_dir : String?
picture_dir : String?
public_dir : String?
template_dir : String?
video_dir : String?
}fn path_sep() -> StringInstall
Download zipPlatform-specific config, cache, and data directory paths for MoonBit (XDG on Linux, conventions on macOS/Windows)
Dependencies