code: func (ch *Channel) Confirm(noWait bool) error {
  	if err := ch.call(
  		&confirmSelect{Nowait: noWait},
  		&confirmSelectOk{},
  	); err != nil {
  		return err
  	}
  
  	ch.confirmM.Lock()
  	ch.confirming = true
  	ch.confirmM.Unlock()
  
  	return nil
  }
docs: /*
  Confirm puts this channel into confirm mode so that the client can ensure all
  publishings have successfully been received by the server.  After entering this
  mode, the server will send a basic.ack or basic.nack message with the deliver
  tag set to a 1 based incremental index corresponding to every publishing
  received after the this method returns.
  
  Add a listener to Channel.NotifyPublish to respond to the Confirmations. If
  Channel.NotifyPublish is not called, the Confirmations will be silently
  ignored.
  
  The order of acknowledgments is not bound to the order of deliveries.
  
  Ack and Nack confirmations will arrive at some point in the future.
  
  Unroutable mandatory or immediate messages are acknowledged immediately after
  any Channel.NotifyReturn listeners have been notified.  Other messages are
  acknowledged when all queues that should have the message routed to them have
  either received acknowledgment of delivery or have enqueued the message,
  persisting the message if necessary.
  
  When noWait is true, the client will not wait for a response.  A channel
  exception could occur if the server does not support this method.
  
  */