code: func (h *Heap) AddIfNotPresent(obj interface{}) error {
  	key, err := h.data.keyFunc(obj)
  	if err != nil {
  		return cache.KeyError{Obj: obj, Err: err}
  	}
  	if _, exists := h.data.items[key]; !exists {
  		heap.Push(h.data, &itemKeyValue{key, obj})
  		if h.metricRecorder != nil {
  			h.metricRecorder.Inc()
  		}
  	}
  	return nil
  }
docs: // AddIfNotPresent inserts an item, and puts it in the queue. If an item with
  // the key is present in the map, no changes is made to the item.