code: func NewPUBCOMP(opts *PUBCOMPOptions) (Packet, error) {
  	// Initialize the options.
  	if opts == nil {
  		opts = &PUBCOMPOptions{}
  	}
  
  	// Validate the options.
  	if err := opts.validate(); err != nil {
  		return nil, err
  	}
  
  	// Create a PUBCOMP Packet.
  	p := &PUBCOMP{
  		PacketID: opts.PacketID,
  	}
  
  	// Set the variable header to the Packet.
  	p.setVariableHeader()
  
  	// Set the Fixed header to the Packet.
  	p.setFixedHeader()
  
  	// Return the Packet.
  	return p, nil
  }
docs: // NewPUBCOMP creates and returns a PUBCOMP Packet.