diff options
Diffstat (limited to 'core/src/Utils/IO/Helper.hpp')
-rw-r--r-- | core/src/Utils/IO/Helper.hpp | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/core/src/Utils/IO/Helper.hpp b/core/src/Utils/IO/Helper.hpp deleted file mode 100644 index ebd47a7..0000000 --- a/core/src/Utils/IO/Helper.hpp +++ /dev/null @@ -1,43 +0,0 @@ -#pragma once - -#include "Utils/IO/DataStream.hpp" - -namespace DataStreamAdapters { - -/// Helper to invoke either Read() or ReadObject(). -/// This is intended for writing IO adapters, users that's writing IO logic shouldn't using this - it increases compile time while reducing readability. -template <class TAdapter, class T> -void ReadHelper(InputDataStream& stream, T& t) -{ - if constexpr (!std::is_same_v<TAdapter, void>) { - stream.ReadObjectAdapted<TAdapter>(t); - } else if constexpr (requires(T tt, InputDataStream ss) { ss.Read(tt); }) { - stream.Read(t); - } else if constexpr (requires(T tt, InputDataStream ss) { ss.ReadEnum(tt); }) { - stream.ReadEnum(t); - } else if constexpr (requires(T tt, InputDataStream ss) { ss.ReadObject(tt); }) { - stream.ReadObject(t); - } else { - static_assert(false && sizeof(T), "This type is neither a 'value' nor an 'object'."); - } -} - -/// Helper to invoke either Write() or WriteObject(). -/// This is intended for writing IO adapters, users that's writing IO logic shouldn't using this - it increases compile time while reducing readability. -template <class TAdapter, class T> -void WriteHelper(OutputDataStream& stream, T& t) -{ - if constexpr (!std::is_same_v<TAdapter, void>) { - stream.WriteObjectAdapted<TAdapter>(t); - } else if constexpr (requires(T tt, OutputDataStream ss) { ss.Write(tt); }) { - stream.Write(t); - } else if constexpr (requires(T tt, OutputDataStream ss) { ss.WriteEnum(tt); }) { - stream.WriteEnum(t); - } else if constexpr (requires(T tt, OutputDataStream ss) { ss.WriteObject(tt); }) { - stream.WriteObject(t); - } else { - static_assert(false && sizeof(T), "This type is neither a 'value' nor an 'object'."); - } -} - -} // namespace DataStreamAdapters |