diff options
Diffstat (limited to 'core/src/Utils/IO/VectorIntegration.hpp')
-rw-r--r-- | core/src/Utils/IO/VectorIntegration.hpp | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/core/src/Utils/IO/VectorIntegration.hpp b/core/src/Utils/IO/VectorIntegration.hpp index da663a4..3689505 100644 --- a/core/src/Utils/IO/VectorIntegration.hpp +++ b/core/src/Utils/IO/VectorIntegration.hpp @@ -1,6 +1,7 @@ #pragma once #include "Utils/IO/DataStream.hpp" +#include "Utils/IO/Helper.hpp" #include <type_traits> #include <vector> @@ -10,39 +11,31 @@ template <class TAdapter = void> struct Vector { template <class TElement> - static void ReadFromDataStream(InputDataStream& s, std::vector<TElement>& vec) + static void ReadFromDataStream(InputDataStream& stream, std::vector<TElement>& vec) { static_assert(std::is_default_constructible_v<TElement>); static_assert(std::is_move_constructible_v<TElement>); uint64_t size; - s.Read(size); + stream.Read(size); vec.clear(); vec.reserve(size); for (uint64_t i = 0; i < size; ++i) { TElement element; - if constexpr (std::is_same_v<TAdapter, void>) { - s.ReadGeneric(element); - } else { - s.ReadObjectAdapted<TAdapter>(element); - } + ReadHelper<TAdapter>(stream, element); vec.push_back(std::move(element)); } } template <class TElement> - static void WriteToDataStream(OutputDataStream& s, const std::vector<TElement>& vec) + static void WriteToDataStream(OutputDataStream& stream, const std::vector<TElement>& vec) { - s.Write((uint64_t)vec.size()); + stream.Write((uint64_t)vec.size()); for (auto& element : vec) { - if constexpr (std::is_same_v<TAdapter, void>) { - s.WriteGeneric(element); - } else { - s.WriteObjectAdapted<TAdapter>(element); - } + WriteHelper<TAdapter>(stream, element); } } }; |