Struct directories::ProjectDirs [] [src]

pub struct ProjectDirs { /* fields omitted */ }

ProjectDirs computes the location of cache, config or data directories for a specific application, which are derived from the standard directories and the name of the project/organization.

Examples

All examples on this page are computed with a user named Alice, and a ProjectDirs struct created with ProjectDirs::from("com", "Foo Corp", "Bar App").

use directories::ProjectDirs;
let proj_dirs = ProjectDirs::from("com", "Foo Corp",  "Bar App");
proj_dirs.config_dir();
// Linux:   /home/alice/.config/barapp
// Windows: C:\Users\Alice\AppData\Roaming\Foo Corp\Bar App
// macOS:   /Users/Alice/Library/Preferences/com.Foo-Corp.Bar-App

Methods

impl ProjectDirs
[src]

[src]

Creates a ProjectDirs struct directly from a PathBuf value. The argument is used verbatim and is not adapted to operating system standards.

The use of ProjectDirs::from_path is strongly discouraged, as its results will not follow operating system standards on at least two of three platforms.

[src]

Creates a ProjectDirs struct from values describing the project.

The use of ProjectDirs::from (instead of ProjectDirs::from_path) is strongly encouraged, as its results will follow operating system standards on Linux, macOS and Windows.

Parameters

  • qualifier – The reverse domain name notation of the application, excluding the organization or application name itself.
    An empty string can be passed if no qualifier should be used (only affects macOS).
    Example values: "com.example", "org", "uk.co", "io", ""
  • organization – The name of the organization that develops this application, or for which the application is developed.
    An empty string can be passed if no organization should be used (only affects macOS and Windows).
    Example values: "Foo Corp", "Alice and Bob Inc", ""
  • application – The name of the application itself.
    Example values: "Bar App", "ExampleProgram", "Unicorn-Programme"

impl ProjectDirs
[src]

[src]

Returns the project path fragment used to compute the project's cache/config/data directories. The value is derived from the ProjectDirs::from call and is platform-dependent.

[src]

Returns the path to the project's cache directory.

Platform Value Example
Linux $XDG_CACHE_HOME_project_path_ or $HOME/.cache/_project_path_ /home/alice/.cache/barapp
macOS $HOME/Library/Caches/_project_path_ /Users/Alice/Library/Caches/com.Foo-Corp.Bar-App
Windows {FOLDERID_LocalAppData}\_project_path_\cache C:\Users\Alice\AppData\Local\Foo Corp\Bar App\cache

[src]

Returns the path to the project's config directory.

Platform Value Example
Linux $XDG_CONFIG_HOME/_project_path_ or $HOME/.config/_project_path_ /home/alice/.config/barapp
macOS $HOME/Library/Preferences/_project_path_ /Users/Alice/Library/Preferences/com.Foo-Corp.Bar-App
Windows {FOLDERID_RoamingAppData}\_project_path_\config C:\Users\Alice\AppData\Roaming\Foo Corp\Bar App\config

[src]

Returns the path to the project's data directory.

Platform Value Example
Linux $XDG_DATA_HOME/_project_path_ or $HOME/.local/share/_project_path_ /home/alice/.local/share/barapp
macOS $HOME/Library/Application Support/_project_path_ /Users/Alice/Library/Application Support/com.Foo-Corp.Bar-App
Windows {FOLDERID_RoamingAppData}\_project_path_\data C:\Users\Alice\AppData\Roaming\Foo Corp\Bar App\data

[src]

Returns the path to the project's local data directory.

Platform Value Example
Linux $XDG_DATA_HOME/_project_path_ or $HOME/.local/share/_project_path_ /home/alice/.local/share/barapp
macOS $HOME/Library/Application Support/_project_path_ /Users/Alice/Library/Application Support/com.Foo-Corp.Bar-App
Windows {FOLDERID_LocalAppData}\_project_path_\data C:\Users\Alice\AppData\Local\Foo Corp\Bar App\data

[src]

Returns the path to the project's runtime directory.

Platform Value Example
Linux $XDG_RUNTIME_DIR /run/user/1001/barapp
macOS
Windows

Trait Implementations

impl Debug for ProjectDirs
[src]

[src]

Formats the value using the given formatter. Read more

impl Clone for ProjectDirs
[src]

[src]

Returns a copy of the value. Read more

1.0.0
[src]

Performs copy-assignment from source. Read more

Auto Trait Implementations

impl Send for ProjectDirs

impl Sync for ProjectDirs