reflective-rapidjson/lib/binary/reflector-chronoutilities.h

47 lines
1.5 KiB
C
Raw Normal View History

#ifndef REFLECTIVE_RAPIDJSON_BINARY_REFLECTOR_CHRONO_UTILITIES_H
#define REFLECTIVE_RAPIDJSON_BINARY_REFLECTOR_CHRONO_UTILITIES_H
/*!
* \file reflector-chronoutilities.h
* \brief Contains functions for (de)serializing objects from the chrono utilities provided by the
* C++ utilities library.
* \remarks This file demonstrates implementing custom (de)serialization for specific types.
*/
#include "./reflector.h"
#include <c++utilities/chrono/datetime.h>
#include <c++utilities/chrono/timespan.h>
namespace ReflectiveRapidJSON {
namespace BinaryReflector {
2019-06-10 22:46:06 +02:00
template <> inline void readCustomType<CppUtilities::DateTime>(BinaryDeserializer &deserializer, CppUtilities::DateTime &dateTime)
{
deserializer.read(dateTime.ticks());
}
2021-06-06 19:24:40 +02:00
template <>
inline void writeCustomType<CppUtilities::DateTime>(BinarySerializer &serializer, const CppUtilities::DateTime &dateTime, BinaryVersion version)
{
2021-06-06 19:24:40 +02:00
CPP_UTILITIES_UNUSED(version)
serializer.write(dateTime.totalTicks());
}
2019-06-10 22:46:06 +02:00
template <> inline void readCustomType<CppUtilities::TimeSpan>(BinaryDeserializer &deserializer, CppUtilities::TimeSpan &timeSpan)
{
deserializer.read(timeSpan.ticks());
}
2021-06-06 19:24:40 +02:00
template <>
inline void writeCustomType<CppUtilities::TimeSpan>(BinarySerializer &serializer, const CppUtilities::TimeSpan &timeSpan, BinaryVersion version)
{
2021-06-06 19:24:40 +02:00
CPP_UTILITIES_UNUSED(version)
serializer.write(timeSpan.totalTicks());
}
} // namespace BinaryReflector
} // namespace ReflectiveRapidJSON
#endif // REFLECTIVE_RAPIDJSON_BINARY_REFLECTOR_CHRONO_UTILITIES_H