func()

in metadata_response.go [366:428]


func (r *MetadataResponse) encode(pe packetEncoder) (err error) {
	if r.Version >= 3 {
		pe.putInt32(r.ThrottleTimeMs)
	}

	if r.Version < 9 {
		err = pe.putArrayLength(len(r.Brokers))
		if err != nil {
			return err
		}
	} else {
		pe.putCompactArrayLength(len(r.Brokers))
	}

	for _, broker := range r.Brokers {
		err = broker.encode(pe, r.Version)
		if err != nil {
			return err
		}
	}

	if r.Version >= 2 {
		if r.Version < 9 {
			err = pe.putNullableString(r.ClusterID)
			if err != nil {
				return err
			}
		} else {
			err = pe.putNullableCompactString(r.ClusterID)
			if err != nil {
				return err
			}
		}
	}

	if r.Version >= 1 {
		pe.putInt32(r.ControllerID)
	}

	if r.Version < 9 {
		err = pe.putArrayLength(len(r.Topics))
	} else {
		pe.putCompactArrayLength(len(r.Topics))
	}
	if err != nil {
		return err
	}
	for _, block := range r.Topics {
		if err := block.encode(pe, r.Version); err != nil {
			return err
		}
	}

	if r.Version >= 8 {
		pe.putInt32(r.ClusterAuthorizedOperations)
	}

	if r.Version >= 9 {
		pe.putEmptyTaggedFieldArray()
	}

	return nil
}