@@ -285,6 +285,7 @@ template<typename Stream> inline void Serialize(Stream& s, int64_t a ) { ser_wri
285
285
template <typename Stream> inline void Serialize (Stream& s, uint64_t a) { ser_writedata64 (s, a); }
286
286
template <typename Stream, int N> inline void Serialize (Stream& s, const char (&a)[N]) { s.write (MakeByteSpan (a)); }
287
287
template <typename Stream, int N> inline void Serialize (Stream& s, const unsigned char (&a)[N]) { s.write (MakeByteSpan (a)); }
288
+ template <typename Stream, typename B, std::size_t N> void Serialize (Stream& s, const std::array<B, N>& a) { (void )/* force byte-type */ UCharCast (a.data ()); s.write (MakeByteSpan (a)); }
288
289
template <typename Stream, typename B> void Serialize (Stream& s, Span<B> span) { (void )/* force byte-type */ UCharCast (span.data ()); s.write (AsBytes (span)); }
289
290
290
291
#ifndef CHAR_EQUALS_INT8
@@ -301,6 +302,7 @@ template<typename Stream> inline void Unserialize(Stream& s, int64_t& a ) { a =
301
302
template <typename Stream> inline void Unserialize (Stream& s, uint64_t & a) { a = ser_readdata64 (s); }
302
303
template <typename Stream, int N> inline void Unserialize (Stream& s, char (&a)[N]) { s.read (MakeWritableByteSpan (a)); }
303
304
template <typename Stream, int N> inline void Unserialize (Stream& s, unsigned char (&a)[N]) { s.read (MakeWritableByteSpan (a)); }
305
+ template <typename Stream, typename B, std::size_t N> void Unserialize (Stream& s, std::array<B, N>& a) { (void )/* force byte-type */ UCharCast (a.data ()); s.read (MakeWritableByteSpan (a)); }
304
306
template <typename Stream, typename B> void Unserialize (Stream& s, Span<B> span) { (void )/* force byte-type */ UCharCast (span.data ()); s.read (AsWritableBytes (span)); }
305
307
306
308
template <typename Stream> inline void Serialize (Stream& s, bool a) { uint8_t f = a; ser_writedata8 (s, f); }
0 commit comments