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;
	}