code: func (u *UnsubscribePacket) Unpack(b io.Reader) error {
  	var err error
  	u.MessageID, err = decodeUint16(b)
  	if err != nil {
  		return err
  	}
  
  	for topic, err := decodeString(b); err == nil && topic != ""; topic, err = decodeString(b) {
  		u.Topics = append(u.Topics, topic)
  	}
  
  	return err
  }
docs: //Unpack decodes the details of a ControlPacket after the fixed
  //header has been read