code: func (c *Client) processPubrec(id packet.ID) error {
  	// prepare pubrel packet
  	pubrel := packet.NewPubrel()
  	pubrel.ID = id
  
  	// overwrite stored Publish with the Pubrel packet
  	err := c.Session.SavePacket(session.Outgoing, pubrel)
  	if err != nil {
  		return c.die(err, true, false)
  	}
  
  	// send packet
  	err = c.send(pubrel, true)
  	if err != nil {
  		return c.die(err, false, false)
  	}
  
  	return nil
  }
docs: // handle an incoming Pubrec packet