@@ -264,6 +264,7 @@ template<typename Stream> inline void Serialize(Stream& s, int64_t a ) { ser_wri
264
264
template <typename Stream> inline void Serialize (Stream& s, uint64_t a) { ser_writedata64 (s, a); }
265
265
template <typename Stream, BasicByte B, int N> void Serialize (Stream& s, const B (&a)[N]) { s.write (MakeByteSpan (a)); }
266
266
template <typename Stream, BasicByte B, std::size_t N> void Serialize (Stream& s, const std::array<B, N>& a) { s.write (MakeByteSpan (a)); }
267
+ template <typename Stream, BasicByte B, std::size_t N> void Serialize (Stream& s, std::span<B, N> span) { s.write (std::as_bytes (span)); }
267
268
template <typename Stream, BasicByte B> void Serialize (Stream& s, Span<B> span) { s.write (AsBytes (span)); }
268
269
269
270
template <typename Stream, CharNotInt8 V> void Unserialize (Stream&, V) = delete; // char serialization forbidden. Use uint8_t or int8_t
@@ -278,6 +279,7 @@ template<typename Stream> inline void Unserialize(Stream& s, int64_t& a ) { a =
278
279
template <typename Stream> inline void Unserialize (Stream& s, uint64_t & a) { a = ser_readdata64 (s); }
279
280
template <typename Stream, BasicByte B, int N> void Unserialize (Stream& s, B (&a)[N]) { s.read (MakeWritableByteSpan (a)); }
280
281
template <typename Stream, BasicByte B, std::size_t N> void Unserialize (Stream& s, std::array<B, N>& a) { s.read (MakeWritableByteSpan (a)); }
282
+ template <typename Stream, BasicByte B, std::size_t N> void Unserialize (Stream& s, std::span<B, N> span) { s.read (std::as_writable_bytes (span)); }
281
283
template <typename Stream, BasicByte B> void Unserialize (Stream& s, Span<B> span) { s.read (AsWritableBytes (span)); }
282
284
283
285
template <typename Stream> inline void Serialize (Stream& s, bool a) { uint8_t f = a; ser_writedata8 (s, f); }
0 commit comments