| 1397 | JsonMapIterator& operator=(JsonMapIterator&&) = default; |
| 1398 | |
| 1399 | Value Next(std::string& scratch ABSL_ATTRIBUTE_LIFETIME_BOUND) { |
| 1400 | Value result; |
| 1401 | absl::visit(absl::Overload( |
| 1402 | [&](Generated& generated) -> void { |
| 1403 | result = std::pair{absl::string_view(generated->first), |
| 1404 | &generated->second}; |
| 1405 | ++generated; |
| 1406 | }, |
| 1407 | [&](Dynamic& dynamic) -> void { |
| 1408 | const auto& key = dynamic.GetKey().GetStringValue(); |
| 1409 | scratch.assign(key.data(), key.size()); |
| 1410 | result = |
| 1411 | std::pair{absl::string_view(scratch), |
| 1412 | &dynamic.GetValueRef().GetMessageValue()}; |
| 1413 | ++dynamic; |
| 1414 | }), |
| 1415 | variant_); |
| 1416 | return result; |
| 1417 | } |
| 1418 | |
| 1419 | private: |
| 1420 | absl::variant<Generated, Dynamic> variant_; |
no test coverage detected