docs: def decode_fetch_response(cls, data):
          """
          Decode bytes to a FetchResponse
  
          Arguments:
              data: bytes to decode
          """
          ((correlation_id, num_topics), cur) = relative_unpack('>ii', data, 0)
  
          for _ in range(num_topics):
              (topic, cur) = read_short_string(data, cur)
              ((num_partitions,), cur) = relative_unpack('>i', data, cur)
  
              for j in range(num_partitions):
                  ((partition, error, highwater_mark_offset), cur) = \
                      relative_unpack('>ihq', data, cur)
  
                  (message_set, cur) = read_int_string(data, cur)
  
                  yield FetchResponse(
                      topic, partition, error,
                      highwater_mark_offset,
                      KafkaProtocol._decode_message_set_iter(message_set))