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
}