use azul_css::{AzString, U8Vec, EmptyStruct, impl_result, impl_result_inner, impl_vec, impl_vec_clone, impl_vec_debug, impl_vec_mut, impl_option, impl_option_inner};
impl_vec!(DirEntry, DirEntryVec, DirEntryVecDestructor, DirEntryVecDestructorType, DirEntryVecSlice, OptionDirEntry);
/// Returns the user's home directory (e.g., /home/username on Linux, C:\Users\username on Windows)
/// Returns the user's config directory (e.g., ~/.config on Linux, ~/Library/Application Support on macOS)
/// Returns the user's local config directory (e.g., ~/.config on Linux, ~/Library/Application Support on macOS)
dirs::config_local_dir().map(|p| Self { inner: AzString::from(p.to_string_lossy().into_owned()) })
/// Returns the user's data directory (e.g., ~/.local/share on Linux, ~/Library/Application Support on macOS)
/// Returns the user's local data directory (e.g., ~/.local/share on Linux, ~/Library/Application Support on macOS)
dirs::data_local_dir().map(|p| Self { inner: AzString::from(p.to_string_lossy().into_owned()) })
dirs::executable_dir().map(|p| Self { inner: AzString::from(p.to_string_lossy().into_owned()) })
/// Returns the user's font directory (e.g., ~/.local/share/fonts on Linux, ~/Library/Fonts on macOS)
/// Returns the user's preference directory (e.g., ~/.config on Linux, ~/Library/Preferences on macOS)
dirs::preference_dir().map(|p| Self { inner: AzString::from(p.to_string_lossy().into_owned()) })