123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- package os2
- import "base:runtime"
- // ```
- // Windows: C:\Users\Alice
- // macOS: /Users/Alice
- // Linux: /home/alice
- // ```
- @(require_results)
- user_home_dir :: proc(allocator: runtime.Allocator) -> (dir: string, err: Error) {
- return _user_home_dir(allocator)
- }
- // Files that applications can regenerate/refetch at a loss of speed, e.g. shader caches
- //
- // Sometimes deleted for system maintenance
- //
- // ```
- // Windows: C:\Users\Alice\AppData\Local
- // macOS: /Users/Alice/Library/Caches
- // Linux: /home/alice/.cache
- // ```
- @(require_results)
- user_cache_dir :: proc(allocator: runtime.Allocator) -> (dir: string, err: Error) {
- return _user_cache_dir(allocator)
- }
- // User-hidden application data
- //
- // ```
- // Windows: C:\Users\Alice\AppData\Local ("C:\Users\Alice\AppData\Roaming" if `roaming`)
- // macOS: /Users/Alice/Library/Application Support
- // Linux: /home/alice/.local/share
- // ```
- //
- // NOTE: (Windows only) `roaming` is for syncing across multiple devices within a *domain network*
- @(require_results)
- user_data_dir :: proc(allocator: runtime.Allocator, roaming := false) -> (dir: string, err: Error) {
- return _user_data_dir(allocator, roaming)
- }
- // Non-essential application data, e.g. history, ui layout state
- //
- // ```
- // Windows: C:\Users\Alice\AppData\Local
- // macOS: /Users/Alice/Library/Application Support
- // Linux: /home/alice/.local/state
- // ```
- @(require_results)
- user_state_dir :: proc(allocator: runtime.Allocator) -> (dir: string, err: Error) {
- return _user_state_dir(allocator)
- }
- // Application log files
- //
- // ```
- // Windows: C:\Users\Alice\AppData\Local
- // macOS: /Users/Alice/Library/Logs
- // Linux: /home/alice/.local/state
- // ```
- @(require_results)
- user_log_dir :: proc(allocator: runtime.Allocator) -> (dir: string, err: Error) {
- return _user_log_dir(allocator)
- }
- // Application settings/preferences
- //
- // ```
- // Windows: C:\Users\Alice\AppData\Local ("C:\Users\Alice\AppData\Roaming" if `roaming`)
- // macOS: /Users/Alice/Library/Application Support
- // Linux: /home/alice/.config
- // ```
- //
- // NOTE: (Windows only) `roaming` is for syncing across multiple devices within a *domain network*
- @(require_results)
- user_config_dir :: proc(allocator: runtime.Allocator, roaming := false) -> (dir: string, err: Error) {
- return _user_config_dir(allocator, roaming)
- }
- // ```
- // Windows: C:\Users\Alice\Music
- // macOS: /Users/Alice/Music
- // Linux: /home/alice/Music
- // ```
- @(require_results)
- user_music_dir :: proc(allocator: runtime.Allocator) -> (dir: string, err: Error) {
- return _user_music_dir(allocator)
- }
- // ```
- // Windows: C:\Users\Alice\Desktop
- // macOS: /Users/Alice/Desktop
- // Linux: /home/alice/Desktop
- // ```
- @(require_results)
- user_desktop_dir :: proc(allocator: runtime.Allocator) -> (dir: string, err: Error) {
- return _user_desktop_dir(allocator)
- }
- // ```
- // Windows: C:\Users\Alice\Documents
- // macOS: /Users/Alice/Documents
- // Linux: /home/alice/Documents
- // ```
- @(require_results)
- user_documents_dir :: proc(allocator: runtime.Allocator) -> (dir: string, err: Error) {
- return _user_documents_dir(allocator)
- }
- // ```
- // Windows: C:\Users\Alice\Downloads
- // macOS: /Users/Alice/Downloads
- // Linux: /home/alice/Downloads
- // ```
- @(require_results)
- user_downloads_dir :: proc(allocator: runtime.Allocator) -> (dir: string, err: Error) {
- return _user_downloads_dir(allocator)
- }
- // ```
- // Windows: C:\Users\Alice\Pictures
- // macOS: /Users/Alice/Pictures
- // Linux: /home/alice/Pictures
- // ```
- @(require_results)
- user_pictures_dir :: proc(allocator: runtime.Allocator) -> (dir: string, err: Error) {
- return _user_pictures_dir(allocator)
- }
- // ```
- // Windows: C:\Users\Alice\Public
- // macOS: /Users/Alice/Public
- // Linux: /home/alice/Public
- // ```
- @(require_results)
- user_public_dir :: proc(allocator: runtime.Allocator) -> (dir: string, err: Error) {
- return _user_public_dir(allocator)
- }
- // ```
- // Windows: C:\Users\Alice\Videos
- // macOS: /Users/Alice/Movies
- // Linux: /home/alice/Videos
- // ```
- @(require_results)
- user_videos_dir :: proc(allocator: runtime.Allocator) -> (dir: string, err: Error) {
- return _user_videos_dir(allocator)
- }
|