change implementation of optionalValueAt

This commit is contained in:
HaeNoe 2024-04-14 22:35:51 +02:00
parent aa438b8fba
commit bb939d3772
No known key found for this signature in database
2 changed files with 5 additions and 7 deletions

View file

@ -30,14 +30,12 @@ const nlohmann::json & valueAt(
return map.at(key);
}
std::optional<nlohmann::json> optionalValueAt(const nlohmann::json & value, const std::string & key)
std::optional<nlohmann::json> optionalValueAt(const nlohmann::json::object_t & map, const std::string & key)
{
try {
auto & v = valueAt(value, key);
return v.get<nlohmann::json>();
} catch (...) {
if (!map.contains(key))
return std::nullopt;
}
return std::optional { map.at(key) };
}

View file

@ -23,7 +23,7 @@ const nlohmann::json & valueAt(
const nlohmann::json::object_t & map,
const std::string & key);
std::optional<nlohmann::json> optionalValueAt(const nlohmann::json & value, const std::string & key);
std::optional<nlohmann::json> optionalValueAt(const nlohmann::json::object_t & value, const std::string & key);
/**
* Downcast the json object, failing with a nice error if the conversion fails.