| 294 | } // namespace |
| 295 | |
| 296 | Value Value::Clone(google::protobuf::Arena* absl_nonnull arena) const { |
| 297 | return variant_.Visit([arena](const auto& alternative) -> Value { |
| 298 | if constexpr (IsMonostate<decltype(alternative)>::value) { |
| 299 | return Value(); |
| 300 | } else if constexpr (HasCloneMethod<absl::remove_cvref_t< |
| 301 | decltype(alternative)>>::value) { |
| 302 | return alternative.Clone(arena); |
| 303 | } else { |
| 304 | return alternative; |
| 305 | } |
| 306 | }); |
| 307 | } |
| 308 | |
| 309 | std::ostream& operator<<(std::ostream& out, const Value& value) { |
| 310 | return value.variant_.Visit([&out](const auto& alternative) -> std::ostream& { |
no test coverage detected