code: func (ch *Channel) Get(queue string, autoAck bool) (msg Delivery, ok bool, err error) {
  	req := &basicGet{Queue: queue, NoAck: autoAck}
  	res := &basicGetOk{}
  	empty := &basicGetEmpty{}
  
  	if err := ch.call(req, res, empty); err != nil {
  		return Delivery{}, false, err
  	}
  
  	if res.DeliveryTag > 0 {
  		return *(newDelivery(ch, res)), true, nil
  	}
  
  	return Delivery{}, false, nil
  }
docs: /*
  Get synchronously receives a single Delivery from the head of a queue from the
  server to the client.  In almost all cases, using Channel.Consume will be
  preferred.
  
  If there was a delivery waiting on the queue and that delivery was received, the
  second return value will be true.  If there was no delivery waiting or an error
  occurred, the ok bool will be false.
  
  All deliveries must be acknowledged including those from Channel.Get.  Call
  Delivery.Ack on the returned delivery when you have fully processed this
  delivery.
  
  When autoAck is true, the server will automatically acknowledge this message so
  you don't have to.  But if you are unable to fully process this message before
  the channel or connection is closed, the message will not get requeued.
  
  */