in prod/native/libcommon/code/ConfigurationManager.cpp [33:59]
std::string ConfigurationManager::accessOptionStringValueByMetadata(OptionMetadata const &metadata, ConfigurationSnapshot const &snapshot) {
switch (metadata.type) {
case OptionMetadata::type::string: {
std::string *value = reinterpret_cast<std::string *>((std::byte *)&snapshot + metadata.offset);
return *value;
}
case OptionMetadata::type::boolean: {
bool *value = reinterpret_cast<bool *>((std::byte *)&snapshot + metadata.offset);
return *value ? "true"s : "false"s;
}
case OptionMetadata::type::duration: {
auto value = reinterpret_cast<std::chrono::milliseconds *>((std::byte *)&snapshot + metadata.offset);
return std::to_string(value->count());
}
case OptionMetadata::type::loglevel: {
LogLevel *value = reinterpret_cast<LogLevel *>((std::byte *)&snapshot + metadata.offset);
std::string_view level = utils::trim(getLogLevelName(*value));
return {level.data(), level.length()};
}
case OptionMetadata::type::bytes: {
std::size_t *value = reinterpret_cast<std::size_t *>((std::byte *)&snapshot + metadata.offset);
return std::to_string(*value);
}
default:
return {};
}
}