code: func (ch *Channel) ExchangeUnbind(destination, key, source string, noWait bool, args Table) error {
  	if err := args.Validate(); err != nil {
  		return err
  	}
  
  	return ch.call(
  		&exchangeUnbind{
  			Destination: destination,
  			Source:      source,
  			RoutingKey:  key,
  			NoWait:      noWait,
  			Arguments:   args,
  		},
  		&exchangeUnbindOk{},
  	)
  }
docs: /*
  ExchangeUnbind unbinds the destination exchange from the source exchange on the
  server by removing the routing key between them.  This is the inverse of
  ExchangeBind.  If the binding does not currently exist, an error will be
  returned.
  
  When noWait is true, do not wait for the server to confirm the deletion of the
  binding.  If any error occurs the channel will be closed.  Add a listener to
  NotifyClose to handle these errors.
  
  Optional arguments that are specific to the type of exchanges bound can also be
  provided.  These must match the same arguments specified in ExchangeBind to
  identify the binding.
  */