Dire
Complete cross-platform solution for data and user directories discovery.
Loading...
Searching...
No Matches
project.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <dire/base.hpp>
4
5#include <dire/defines.hpp>
6
7namespace dire
8{
9
16{
17public:
19 : name(std::move(name))
20 {}
21
22 explicit operator Path const&() const { return name; }
23
24 explicit operator Path() && { return std::move(name); }
25
26private:
27 Path name;
28};
29
41{
42public:
46
47 explicit operator Path const&() const { return name; }
48
49 explicit operator Path() && { return std::move(name); }
50
51private:
52 friend auto name(std::string domain, std::string org, std::string app_name) -> PlatformProjectName;
53
54 explicit PlatformProjectName(Path name)
55 : name(std::move(name))
56 {}
57
58 Path name;
59};
60
304
322auto name(std::string domain, std::string org, std::string app_name) -> PlatformProjectName;
323
326
329
332
335
338
341
344
347
348namespace detail
349{
350
351auto trim(std::string str) -> std::string;
352
353auto concat_project_path(Path const& path, PlatformProjectName project_name) -> Path;
354
355auto map_project_path(Optional<Path> path, PlatformProjectName project_name) -> Optional<Path>;
356
357} // namespace detail
358
359} // namespace dire
IReallyWantMyOwnPlatformProjectName(Path name)
Definition project.hpp:18
Definition project.hpp:41
friend auto name(std::string domain, std::string org, std::string app_name) -> PlatformProjectName
PlatformProjectName(IReallyWantMyOwnPlatformProjectName name)
Definition project.hpp:43
Definition base.hpp:6
auto state_dir() -> Optional< Path >
std::optional< T > Optional
Definition defines.hpp:26
auto runtime_dir() -> Optional< Path >
auto preference_dir() -> Optional< Path >
auto data_local_dir() -> Optional< Path >
auto config_dir() -> Optional< Path >
auto cache_dir() -> Optional< Path >
auto config_local_dir() -> Optional< Path >
auto name(std::string domain, std::string org, std::string app_name) -> PlatformProjectName
auto data_dir() -> Optional< Path >
std::filesystem::path Path
Definition defines.hpp:16
Definition project.hpp:69
Optional< Path > state_dir
Definition project.hpp:302
static auto make(PlatformProjectName project_name) -> Optional< ProjectDirsBundle >
Optional< Path > runtime_dir
Definition project.hpp:274
Path cache_dir
Definition project.hpp:96
Path data_dir
Definition project.hpp:195
Path config_dir
Definition project.hpp:130
Path preference_dir
Definition project.hpp:257
Path data_local_dir
Definition project.hpp:226
Path config_local_dir
Definition project.hpp:164