'Encodes a FetchRequest struct
Arguments:
payloads: list of FetchRequestPayload
max_wait_time (int, optional): ms to block waiting for min_bytes
data. Defaults to 100.
min_bytes (int, optional): minimum bytes required to return before
max_wait_time. Defaults to 4096.
Return: FetchRequest'

@classmethod
def encode_fetch_request(cls, payloads=(), max_wait_time=100, min_bytes=4096):

    return kafka.protocol.fetch.FetchRequest[0](replica_id=(-1), max_wait_time=max_wait_time, min_bytes=min_bytes, topics=[(topic, [(partition, payload.offset, payload.max_bytes) for (partition, payload) in topic_payloads.items()]) for (topic, topic_payloads) in group_by_topic_and_partition(payloads).items()])
