8 #ifndef TREELITE_DETAIL_SERIALIZER_MIXINS_H_
9 #define TREELITE_DETAIL_SERIALIZER_MIXINS_H_
93 std::vector<PyBufferFrame> frames_;
99 : frames_(frames), cur_idx_(0) {}
101 template <
typename T>
110 template <
typename T>
120 std::vector<PyBufferFrame>
const& frames_;
121 std::size_t cur_idx_;
Definition: contiguous_array.h:17
Definition: serializer_mixins.h:96
void DeserializeScalar(T *field)
Definition: serializer_mixins.h:102
void DeserializeArray(ContiguousArray< T > *field)
Definition: serializer_mixins.h:111
void SkipOptionalField()
Definition: serializer_mixins.h:115
void DeserializeString(std::string *field)
Definition: serializer_mixins.h:106
PyBufferDeserializerMixIn(std::vector< PyBufferFrame > const &frames)
Definition: serializer_mixins.h:98
Definition: serializer_mixins.h:70
PyBufferSerializerMixIn()=default
void SerializeString(std::string *field)
Definition: serializer_mixins.h:79
void SerializeScalar(T *field)
Definition: serializer_mixins.h:75
void SerializeArray(ContiguousArray< T > *field)
Definition: serializer_mixins.h:84
std::vector< PyBufferFrame > GetFrames()
Definition: serializer_mixins.h:88
Definition: serializer_mixins.h:44
void DeserializeString(std::string *field)
Definition: serializer_mixins.h:53
void SkipOptionalField()
Definition: serializer_mixins.h:62
void DeserializeScalar(T *field)
Definition: serializer_mixins.h:49
void DeserializeArray(ContiguousArray< T > *field)
Definition: serializer_mixins.h:58
StreamDeserializerMixIn(std::istream &is)
Definition: serializer_mixins.h:46
Definition: serializer_mixins.h:22
StreamSerializerMixIn(std::ostream &os)
Definition: serializer_mixins.h:24
void SerializeString(std::string *field)
Definition: serializer_mixins.h:31
void SerializeScalar(T *field)
Definition: serializer_mixins.h:27
void SerializeArray(ContiguousArray< T > *field)
Definition: serializer_mixins.h:36
A simple array container, with owned or non-owned (externally allocated) buffer.
Definition: serializer.h:28
void InitArrayFromPyBuffer(ContiguousArray< T > *vec, PyBufferFrame frame)
Definition: serializer.h:113
void InitScalarFromPyBuffer(TypeInfo *scalar, PyBufferFrame frame)
Definition: serializer.h:131
PyBufferFrame GetPyBufferFromScalar(void *data, char const *format, std::size_t itemsize)
Definition: serializer.h:75
void WriteStringToStream(std::string *str, std::ostream &os)
Definition: serializer.h:201
void WriteScalarToStream(T *scalar, std::ostream &os)
Definition: serializer.h:163
PyBufferFrame GetPyBufferFromArray(void *data, char const *format, std::size_t itemsize, std::size_t nitem)
Definition: serializer.h:30
void ReadScalarFromStream(T *scalar, std::istream &is)
Definition: serializer.h:157
PyBufferFrame GetPyBufferFromString(std::string *str)
Definition: serializer.h:79
void InitStringFromPyBuffer(std::string *str, PyBufferFrame frame)
Definition: serializer.h:126
void ReadStringFromStream(std::string *str, std::istream &is)
Definition: serializer.h:191
void WriteArrayToStream(ContiguousArray< T > *vec, std::ostream &os)
Definition: serializer.h:181
void ReadArrayFromStream(ContiguousArray< T > *vec, std::istream &is)
Definition: serializer.h:169
void SkipOptionalFieldInStream(std::istream &is)
Definition: serializer.h:211
Data structure to enable zero-copy exchange in Python.
Building blocks for serializers.