in metadata_request.go [48:106]
func (r *MetadataRequest) encode(pe packetEncoder) (err error) {
if r.Version < 0 || r.Version > 10 {
return PacketEncodingError{"invalid or unsupported MetadataRequest version field"}
}
if r.Version == 0 || len(r.Topics) > 0 {
if r.Version < 9 {
err := pe.putArrayLength(len(r.Topics))
if err != nil {
return err
}
for i := range r.Topics {
err = pe.putString(r.Topics[i])
if err != nil {
return err
}
}
} else if r.Version == 9 {
pe.putCompactArrayLength(len(r.Topics))
for _, topicName := range r.Topics {
if err := pe.putCompactString(topicName); err != nil {
return err
}
pe.putEmptyTaggedFieldArray()
}
} else { // r.Version = 10
pe.putCompactArrayLength(len(r.Topics))
for _, topicName := range r.Topics {
if err := pe.putRawBytes(NullUUID); err != nil {
return err
}
// Avoid implicit memory aliasing in for loop
tn := topicName
if err := pe.putNullableCompactString(&tn); err != nil {
return err
}
pe.putEmptyTaggedFieldArray()
}
}
} else {
if r.Version < 9 {
pe.putInt32(-1)
} else {
pe.putCompactArrayLength(-1)
}
}
if r.Version > 3 {
pe.putBool(r.AllowAutoTopicCreation)
}
if r.Version > 7 {
pe.putBool(r.IncludeClusterAuthorizedOperations)
pe.putBool(r.IncludeTopicAuthorizedOperations)
}
if r.Version > 8 {
pe.putEmptyTaggedFieldArray()
}
return nil
}