code: func (r *Update) binaryPut(serializedData []byte) error {
  	datalength := len(r.data)
  	if datalength == 0 {
  		return NewError(ErrInvalidValue, "a feed update must contain data")
  	}
  
  	if datalength > MaxUpdateDataLength {
  		return NewErrorf(ErrInvalidValue, "feed update data is too big (length=%d). Max length=%d", datalength, MaxUpdateDataLength)
  	}
  
  	if len(serializedData) != r.binaryLength() {
  		return NewErrorf(ErrInvalidValue, "slice passed to putBinary must be of exact size. Expected %d bytes", r.binaryLength())
  	}
  
  	var cursor int
  	// serialize Header
  	serializedData[cursor] = r.Header.Version
  	copy(serializedData[cursor+1:headerLength], r.Header.Padding[:headerLength-1])
  	cursor += headerLength
  
  	// serialize ID
  	if err := r.ID.binaryPut(serializedData[cursor : cursor+idLength]); err != nil {
  		return err
  	}
  	cursor += idLength
  
  	// add the data
  	copy(serializedData[cursor:], r.data)
  	cursor += datalength
  
  	return nil
  }
docs: // binaryPut serializes the feed update information into the given slice