Browse Source

Intermediate changes

robot-piglet 1 year ago
parent
commit
9269fe228b
3 changed files with 12 additions and 46 deletions
  1. 2 2
      yt/yt/core/misc/intern_registry-inl.h
  2. 5 28
      yt/yt/core/misc/serialize-inl.h
  3. 5 16
      yt/yt/core/misc/serialize.h

+ 2 - 2
yt/yt/core/misc/intern_registry-inl.h

@@ -207,11 +207,11 @@ struct TInternedObjectSerializer
                 const auto& registry = context.template GetInternRegistry<T>();
                 object = registry->Intern(std::move(value));
                 auto loadedKey = context.RegisterRefCountedEntity(object.ToDataPtr());
-                SERIALIZATION_DUMP_WRITE(context, "objref %v", loadedKey.Index);
+                SERIALIZATION_DUMP_WRITE(context, "objref %v", loadedKey);
             }
         } else {
             object = TInternedObject<T>::FromDataPtr(context.template GetRefCountedEntity<TInternedObjectData<T>>(key));
-            SERIALIZATION_DUMP_WRITE(context, "objref %v", key.Index);
+            SERIALIZATION_DUMP_WRITE(context, "objref %v", key);
         }
     }
 };

+ 5 - 28
yt/yt/core/misc/serialize-inl.h

@@ -5,6 +5,7 @@
 #endif
 
 #include "collection_helpers.h"
+#include "maybe_inf.h"
 
 #include <library/cpp/yt/small_containers/compact_vector.h>
 #include <library/cpp/yt/small_containers/compact_flat_map.h>
@@ -301,31 +302,6 @@ Y_FORCE_INLINE TLoadContextStream* TStreamLoadContext::GetInput()
 
 ////////////////////////////////////////////////////////////////////////////////
 
-inline constexpr TEntitySerializationKey::TEntitySerializationKey()
-    : Index(-1)
-{ }
-
-inline constexpr TEntitySerializationKey::TEntitySerializationKey(int index)
-    : Index(index)
-{ }
-
-inline constexpr TEntitySerializationKey::operator bool() const
-{
-    return Index != -1;
-}
-
-inline void TEntitySerializationKey::Save(TEntityStreamSaveContext& context) const
-{
-    NYT::Save(context, Index);
-}
-
-inline void TEntitySerializationKey::Load(TEntityStreamLoadContext& context)
-{
-    NYT::Load(context, Index);
-}
-
-////////////////////////////////////////////////////////////////////////////////
-
 inline TEntitySerializationKey TEntityStreamSaveContext::GenerateSerializationKey()
 {
     YT_VERIFY(!ParentContext_);
@@ -390,9 +366,10 @@ T* TEntityStreamLoadContext::GetRawEntity(TEntitySerializationKey key) const
         return ParentContext_->GetRawEntity<T>(key);
     }
 
-    YT_ASSERT(key.Index >= 0);
-    YT_ASSERT(key.Index < std::ssize(RawPtrs_));
-    return static_cast<T*>(RawPtrs_[key.Index]);
+    auto index = key.Underlying();
+    YT_ASSERT(index >= 0);
+    YT_ASSERT(index < std::ssize(RawPtrs_));
+    return static_cast<T*>(RawPtrs_[index]);
 }
 
 template <class T>

+ 5 - 16
yt/yt/core/misc/serialize.h

@@ -5,13 +5,14 @@
 #include "mpl.h"
 #include "property.h"
 #include "serialize_dump.h"
-
 #include "maybe_inf.h"
 
 #include <library/cpp/yt/assert/assert.h>
 
 #include <library/cpp/yt/memory/ref.h>
 
+#include <library/cpp/yt/misc/strong_typedef.h>
+
 #include <util/stream/buffered.h>
 #include <util/stream/file.h>
 #include <util/stream/zerocopy_output.h>
@@ -212,20 +213,8 @@ private:
 
 ////////////////////////////////////////////////////////////////////////////////
 
-struct TEntitySerializationKey
-{
-    constexpr TEntitySerializationKey();
-    constexpr explicit TEntitySerializationKey(int index);
-
-    constexpr bool operator==(const TEntitySerializationKey& other) const = default;
-
-    constexpr explicit operator bool() const;
-
-    void Save(TEntityStreamSaveContext& context) const;
-    void Load(TEntityStreamLoadContext& context);
-
-    int Index;
-};
+YT_DEFINE_STRONG_TYPEDEF(TEntitySerializationKey, i32);
+constexpr auto NullEntitySerializationKey = TEntitySerializationKey(-1);
 
 ////////////////////////////////////////////////////////////////////////////////
 
@@ -241,7 +230,7 @@ public:
 
     TEntitySerializationKey GenerateSerializationKey();
 
-    static inline const TEntitySerializationKey InlineKey = TEntitySerializationKey(-3);
+    static constexpr TEntitySerializationKey InlineKey = TEntitySerializationKey(-3);
 
     template <class T>
     TEntitySerializationKey RegisterRawEntity(T* entity);