static RESPObject ProcessResponse(Char?header, SocketReader reader) { if (!header.HasValue) { return(null); } switch (header) { case RESPHeaders.SimpleString: return(RESPSimpleString.Load(reader)); case RESPHeaders.BulkString: return(RESPBulkString.Load(reader)); case RESPHeaders.Array: return(RESPArray.Load(reader)); case RESPHeaders.Error: return(RESPError.Load(reader)); case RESPHeaders.Integer: return(RESPInteger.Load(reader)); default: throw new RESPException("Unrecognized RESP header (byte): " + (byte)header.Value); } }