78 [[nodiscard]] std::vector<uint8_t>
serialize()
const {
79 capnp::MallocMessageBuilder msg;
89 auto bytes = capnp::messageToFlatArray(msg);
90 auto byteArray = bytes.asBytes();
91 return std::vector<uint8_t>(byteArray.begin(), byteArray.end());
96 KJ_REQUIRE(data.size() %
sizeof(capnp::word) == 0,
97 "Serialized data size must be a multiple of capnp::word");
98 auto aligned = kj::heapArray<uint8_t>(data.size());
99 memcpy(aligned.begin(), data.data(), data.size());
100 kj::ArrayPtr<const capnp::word> words(
reinterpret_cast<const capnp::word *
>(aligned.begin()),
101 data.size() /
sizeof(capnp::word));
102 capnp::FlatArrayMessageReader msg(words);
106 result.
accepted = reader.getAccepted();
107 result.sessionId = reader.getSessionId().cStr();
108 result.serverId = reader.getServerId().cStr();
109 result.message = reader.getMessage().cStr();
110 result.serverVersion = reader.getServerVersion().cStr();
111 result.playerId = reader.getPlayerId();
112 result.playerName = reader.getPlayerName().cStr();