code: func New(capacity uint64, options ...CacheOption) Cache {
  	c := &cache{
  		cap:     capacity,
  		keyList: list.New(),
  		items:   map[string]*cached{},
  	}
  	// Default LRU eviction policy
  	EvictionPolicy(LeastRecentlyUsed)(c)
  
  	for _, option := range options {
  		option(c)
  	}
  
  	return c
  }
docs: // New returns a cache with the requested options configured.
  // The cache consumes memory bounded by a fixed capacity,
  // plus tracking overhead linear in the number of items.