mirror of
https://github.com/NixOS/nix.git
synced 2024-11-25 08:12:29 +00:00
change implementation of optionalValueAt
This commit is contained in:
parent
aa438b8fba
commit
bb939d3772
@ -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) };
|
||||
}
|
||||
|
||||
|
||||
|
@ -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.
|
||||
|
Loading…
Reference in New Issue
Block a user