code: func (d *ProtobufCommandDecoder) Decode() (*Command, error) {
  	if d.offset < len(d.data) {
  		var c Command
  		l, n := binary.Uvarint(d.data[d.offset:])
  		cmdBytes := d.data[d.offset+n : d.offset+n+int(l)]
  		err := c.Unmarshal(cmdBytes)
  		if err != nil {
  			return nil, err
  		}
  		d.offset = d.offset + n + int(l)
  		return &c, nil
  	}
  	return nil, io.EOF
  }
docs: // Decode ...