28 [[nodiscard]] std::vector<uint8_t>
serialize()
const {
29 capnp::MallocMessageBuilder message;
36 auto bytes = capnp::messageToFlatArray(message);
37 auto byteArray = bytes.asBytes();
38 return std::vector<uint8_t>(byteArray.begin(), byteArray.end());
42 KJ_REQUIRE(data.size() %
sizeof(capnp::word) == 0,
43 "Serialized data size must be a multiple of capnp::word");
44 auto aligned = kj::heapArray<uint8_t>(data.size());
45 memcpy(aligned.begin(), data.data(), data.size());
46 kj::ArrayPtr<const capnp::word> words(
reinterpret_cast<const capnp::word *
>(aligned.begin()),
47 aligned.size() /
sizeof(capnp::word));
49 capnp::FlatArrayMessageReader reader(words);
53 result.
roomId = msg.getRoomId().cStr();
54 result.success = msg.getSuccess();
55 result.errorMessage = msg.getErrorMessage().cStr();
56 result.isSpectator = msg.getIsSpectator();