code: func (ch *Channel) Cancel(consumer string, noWait bool) error {
  	req := &basicCancel{
  		ConsumerTag: consumer,
  		NoWait:      noWait,
  	}
  	res := &basicCancelOk{}
  
  	if err := ch.call(req, res); err != nil {
  		return err
  	}
  
  	if req.wait() {
  		ch.consumers.cancel(res.ConsumerTag)
  	} else {
  		// Potentially could drop deliveries in flight
  		ch.consumers.cancel(consumer)
  	}
  
  	return nil
  }
docs: /*
  Cancel stops deliveries to the consumer chan established in Channel.Consume and
  identified by consumer.
  
  Only use this method to cleanly stop receiving deliveries from the server and
  cleanly shut down the consumer chan identified by this tag.  Using this method
  and waiting for remaining messages to flush from the consumer chan will ensure
  all messages received on the network will be delivered to the receiver of your
  consumer chan.
  
  Continue consuming from the chan Delivery provided by Channel.Consume until the
  chan closes.
  
  When noWait is true, do not wait for the server to acknowledge the cancel.
  Only use this when you are certain there are no deliveries in flight that
  require an acknowledgment, otherwise they will arrive and be dropped in the
  client without an ack, and will not be redelivered to other consumers.
  
  */