code: func (c *threadSafeMap) ByIndex(indexName, indexKey string) ([]interface{}, error) {
  	c.lock.RLock()
  	defer c.lock.RUnlock()
  
  	indexFunc := c.indexers[indexName]
  	if indexFunc == nil {
  		return nil, fmt.Errorf("Index with name %s does not exist", indexName)
  	}
  
  	index := c.indices[indexName]
  
  	set := index[indexKey]
  	list := make([]interface{}, 0, set.Len())
  	for _, key := range set.List() {
  		list = append(list, c.items[key])
  	}
  
  	return list, nil
  }
docs: // ByIndex returns a list of items that match an exact value on the index function