mijin2/source/mijin/platform/folders.hpp

41 lines
992 B
C++

#pragma once
#if !defined(MIJIN_PLATFORM_FOLDERS_HPP_INCLUDED)
#define MIJIN_PLATFORM_FOLDERS_HPP_INCLUDED 1
#include "../internal/common.hpp"
#include "../util/flag.hpp"
#include <filesystem>
#include <vector>
namespace fs = std::filesystem;
namespace mijin
{
enum class KnownFolder
{
USER_HOME,
TEMP,
CACHE_ROOT,
USER_CONFIG_ROOT,
USER_DATA_ROOT
};
MIJIN_DEFINE_FLAG(IncludeUser);
MIJIN_DEFINE_FLAG(IncludeSystem);
[[nodiscard]]
fs::path getKnownFolder(KnownFolder folder) MIJIN_NOEXCEPT;
[[nodiscard]]
std::vector<fs::path> getAllConfigFolders(IncludeUser includeUser = IncludeUser::YES,
IncludeSystem includeSystem = IncludeSystem::YES) MIJIN_NOEXCEPT;
[[nodiscard]]
std::vector<fs::path> getAllDataFolders(IncludeUser includeUser = IncludeUser::YES,
IncludeSystem includeSystem = IncludeSystem::YES) MIJIN_NOEXCEPT;
}
#endif // defined(MIJIN_PLATFORM_FOLDERS_HPP_INCLUDED)