func()

in metadata_response.go [150:219]


func (t *TopicMetadata) decode(pd packetDecoder, version int16) (err error) {
	t.Version = version
	tmp, err := pd.getInt16()
	if err != nil {
		return err
	}
	t.Err = KError(tmp)

	if t.Version < 9 {
		t.Name, err = pd.getString()
	} else {
		t.Name, err = pd.getCompactString()
	}
	if err != nil {
		return err
	}

	if t.Version >= 10 {
		uuid, err := pd.getRawBytes(16)
		if err != nil {
			return err
		}
		t.Uuid = [16]byte{}
		for i := 0; i < 16; i++ {
			t.Uuid[i] = uuid[i]
		}
	}

	if t.Version >= 1 {
		t.IsInternal, err = pd.getBool()
		if err != nil {
			return err
		}
	}

	var n int
	if t.Version < 9 {
		n, err = pd.getArrayLength()
	} else {
		n, err = pd.getCompactArrayLength()
	}
	if err != nil {
		return err
	} else {
		t.Partitions = make([]*PartitionMetadata, n)
		for i := 0; i < n; i++ {
			block := &PartitionMetadata{}
			if err := block.decode(pd, t.Version); err != nil {
				return err
			}
			t.Partitions[i] = block
		}
	}

	if t.Version >= 8 {
		t.TopicAuthorizedOperations, err = pd.getInt32()
		if err != nil {
			return err
		}
	}

	if t.Version >= 9 {
		_, err = pd.getEmptyTaggedFieldArray()
		if err != nil {
			return err
		}
	}

	return nil
}