code: func NewPacket(fields ...Field) (*Packet, error) {
  	p := &Packet{b: make([]byte, 0, MaxEIRPacketLength)}
  	for _, f := range fields {
  		if err := f(p); err != nil {
  			return nil, err
  		}
  	}
  	return p, nil
  }
docs: // NewPacket returns a new advertising Packet.