code: func (c *Cache) ContainsOrAdd(key, value interface{}) (ok, evicted bool) {
  	c.lock.Lock()
  	defer c.lock.Unlock()
  
  	if c.lru.Contains(key) {
  		return true, false
  	}
  	evicted = c.lru.Add(key, value)
  	return false, evicted
  }
docs: // ContainsOrAdd checks if a key is in the cache  without updating the
  // recent-ness or deleting it for being stale,  and if not, adds the value.
  // Returns whether found and whether an eviction occurred.