| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- #ifndef SOPHIAR2_CONFIG_UTILITY_HPP
- #define SOPHIAR2_CONFIG_UTILITY_HPP
- #define ENSURE_ARRAY(item_name) \
- assert(config.contains(item_name)); \
- assert(config[item_name].is_array());
- #define LOAD_UINT_ITEM(item_name) ({ \
- assert(config.contains(item_name)); \
- assert(config[item_name].is_number_unsigned()); \
- config[item_name].get<std::uint64_t>(); })
- #define LOAD_STRING_ITEM(item_name) ({ \
- assert(config.contains(item_name)); \
- assert(config[item_name].is_string()); \
- config[item_name].get<std::string>(); })
- #define LOAD_STRING_ITEM2(config, item_name) ({ \
- assert(config.contains(item_name)); \
- assert(config[item_name].is_string()); \
- config[item_name].get<std::string>(); })
- #define LOAD_VARIABLE_INDEX(var_type, var_name) ({ \
- auto _name = LOAD_STRING_ITEM(var_name); \
- REQUIRE_VARIABLE(var_type, _name); })
- #define LOAD_VARIABLE_INDEX2(config, var_type, var_name) ({ \
- auto _name = LOAD_STRING_ITEM2(config, var_name); \
- REQUIRE_VARIABLE(var_type, _name); })
- #define LOAD_VARIABLE_INDEX_WITH_NAME(var_type, var_name, var_name_out) ({ \
- var_name_out = LOAD_STRING_ITEM(var_name); \
- REQUIRE_VARIABLE(var_type, var_name_out); })
- #define SAFE_CLOSE_CORO_WORKER(worker) \
- worker->cancel(); \
- co_await worker->coro_wait_stop(); \
- worker = nullptr;
- #endif //SOPHIAR2_CONFIG_UTILITY_HPP
|