| 640 | /// @return Number of bytes written, or error. |
| 641 | template <typename T> |
| 642 | Result<size_t, Error> serialize_to(std::vector<uint8_t> &output, |
| 643 | const T &obj) { |
| 644 | // Wrap the output vector in a Buffer for zero-copy serialization |
| 645 | // writer_index starts at output.size() for appending |
| 646 | Buffer buffer(output); |
| 647 | |
| 648 | // Forward to Buffer version |
| 649 | auto result = serialize_to(buffer, obj); |
| 650 | |
| 651 | // Resize vector to actual written size |
| 652 | output.resize(buffer.writer_index()); |
| 653 | return result; |
| 654 | } |
| 655 | |
| 656 | /// Deserialize an object from a byte array. |
| 657 | /// |