size_t encode_byte_vector(Encoder& e, const byte* buf, size_t size, bool is_optional) { size_t preamble_size = 0; if (buf != 0 && size != 0) { if (is_optional) preamble_size = encode_u64_optional(e, size); else preamble_size = encode_u64(e, size); size_t n = e.Data().size(); e.data_.resize(n + size); memcpy(&e.data_[n], buf, size); } return preamble_size + size; }