public static Message DecodeMessage(BinaryReader reader)
{
var magic = reader.ReadUInt32();
var command = reader.ReadFixedString(12);
var payloadSize = reader.ReadUInt32();
var payloadChecksum = reader.ReadUInt32();
var payload = reader.ReadExactly(payloadSize.ToIntChecked()).ToImmutableArray();
return new Message
(
Magic: magic,
Command: command,
PayloadSize: payloadSize,
PayloadChecksum: payloadChecksum,
Payload: payload
);
}