32 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #include "config.hpp"
 | |
| #include "dbc.hpp"
 | |
| #include <fmt/core.h>
 | |
| 
 | |
| using nlohmann::json;
 | |
| using fmt::format;
 | |
| 
 | |
| Config::Config(const std::string src_path) : $src_path(src_path) {
 | |
|   std::ifstream infile($src_path);
 | |
|   $config = json::parse(infile);
 | |
| }
 | |
| 
 | |
| json &Config::operator[](const std::string &key) {
 | |
|   dbc::check($config.contains(key), format("ERROR in config, key {} doesn't exist.", key));
 | |
|   return $config[key];
 | |
| }
 | |
| 
 | |
| std::wstring Config::wstring(const std::string key) {
 | |
|   dbc::check($config.contains(key), format("ERROR wstring in config, key {} doesn't exist.", key));
 | |
|   std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> $converter;
 | |
|   const std::string& str_val = $config[key];
 | |
|   return $converter.from_bytes(str_val);
 | |
| }
 | |
| 
 | |
| std::wstring Config::wstring(const std::string main_key, const std::string sub_key) {
 | |
|   dbc::check($config.contains(main_key), format("ERROR wstring main/key in config, main_key {} doesn't exist.", main_key));
 | |
|   dbc::check($config[main_key].contains(sub_key), format("ERROR wstring in config, main_key/key {}/{} doesn't exist.", main_key, sub_key));
 | |
| 
 | |
|   const std::string& str_val = $config[main_key][sub_key];
 | |
|   std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> $converter;
 | |
|   return $converter.from_bytes(str_val);
 | |
| }
 | 
