| 24 | } |
| 25 | |
| 26 | std::optional<std::string> parseOptionalString( const json& value, const std::string_view& name ) { |
| 27 | if ( !value.contains( name ) || value[name].is_null() || value[name].empty() || |
| 28 | !value[name].is_string() ) { |
| 29 | return std::nullopt; |
| 30 | } |
| 31 | return value[name].get<std::string>(); |
| 32 | } |
| 33 | |
| 34 | template <typename T> |
| 35 | std::optional<T> parseOptionalObject( const json& value, const std::string_view& name ) { |
no test coverage detected