private object DeserializeStatusPacket(UncompressedPacket packet)
        {
            var br = new SpanReader(packet.Data);

            switch (packet.PacketId)
            {
            // Request
            case 0x00:
                return(Request.Deserialize(ref br));

            // Ping
            case 0x01:
                return(Ping.Deserialize(ref br));

            default:
                throw new InvalidDataException($"Unrecognizable packet id: 0x{packet.PacketId:X2}.");
            }
        }
        private object DeserializeStatusPacket(ref UncompressedPacket packet)
        {
            using (var br = new BinaryReader(new MemoryStream(packet.Data)))
            {
                switch (packet.PacketId)
                {
                // Request
                case 0x00:
                    return(Request.Deserialize(br));

                // Ping
                case 0x01:
                    return(Ping.Deserialize(br));

                default:
                    throw new InvalidDataException($"Unrecognizable packet id: 0x{packet.PacketId:X}.");
                }
            }
        }