docs: def encode_metadata_request(cls, client_id, correlation_id, topics=None,
                                  payloads=None):
          """
          Encode a MetadataRequest
  
          Arguments:
              client_id: string
              correlation_id: int
              topics: list of strings
          """
          if payloads is None:
              topics = [] if topics is None else topics
          else:
              topics = payloads
  
          message = []
          message.append(cls._encode_message_header(client_id, correlation_id,
                                                    KafkaProtocol.METADATA_KEY))
  
          message.append(struct.pack('>i', len(topics)))
  
          for topic in topics:
              message.append(struct.pack('>h%ds' % len(topic), len(topic), topic))
  
          msg = b''.join(message)
          return write_int_string(msg)