41 lines
		
	
	
		
			992 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			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)
 |