code: func (m *arpMessage) bytes() ([]byte, error) {
  	buf := new(bytes.Buffer)
  
  	if err := binary.Write(buf, binary.BigEndian, m.arpHeader); err != nil {
  		return nil, fmt.Errorf("binary write failed: %v", err)
  	}
  	buf.Write(m.senderHardwareAddress)
  	buf.Write(m.senderProtocolAddress)
  	buf.Write(m.targetHardwareAddress)
  	buf.Write(m.targetProtocolAddress)
  
  	return buf.Bytes(), nil
  }
docs: // bytes returns the wire representation of the ARP message.