@@ -479,6 +479,17 @@ void ToProto(
479
479
NYT::NDetail::ToProtoArrayImpl (serializedArray, originalArray);
480
480
}
481
481
482
+ template <class TKey , class TValue , class TSerializedKey , class TSerializedValue >
483
+ void ToProto (
484
+ ::google::protobuf::Map<TSerializedKey, TSerializedValue>* serializedMap,
485
+ const THashMap<TKey, TValue>& originalMap)
486
+ {
487
+ serializedMap->clear ();
488
+ for (const auto & [key, value] : originalMap) {
489
+ serializedMap->insert (std::pair (ToProto<TSerializedKey>(key), ToProto<TSerializedValue>(value)));
490
+ }
491
+ }
492
+
482
493
template <class TOriginalArray , class TSerialized , class ... TArgs>
483
494
void FromProto (
484
495
TOriginalArray* originalArray,
@@ -515,6 +526,19 @@ void CheckedHashSetFromProto(
515
526
516
527
// //////////////////////////////////////////////////////////////////////////////
517
528
529
+ template <class TKey , class TValue , class TSerializedKey , class TSerializedValue >
530
+ void FromProto (
531
+ THashMap<TKey, TValue>* originalMap,
532
+ const ::google::protobuf::Map<TSerializedKey, TSerializedValue>& serializedMap)
533
+ {
534
+ originalMap->clear ();
535
+ for (const auto & [serializedKey, serializedValue] : serializedMap) {
536
+ EmplaceOrCrash (*originalMap, FromProto<TKey>(serializedKey), FromProto<TValue>(serializedValue));
537
+ }
538
+ }
539
+
540
+ // //////////////////////////////////////////////////////////////////////////////
541
+
518
542
template <class TSerialized , NYT::NDetail::CToProtoOriginal TOriginal, class ... TArgs>
519
543
auto ToProto (const TOriginal& original, TArgs&&... args)
520
544
{
0 commit comments