code: func (c *ObjectCache) Get(key string) (interface{}, error) {
  	value, ok, err := c.cache.Get(objectEntry{key: key})
  	if err != nil {
  		return nil, err
  	}
  	if !ok {
  		obj, err := c.updater()
  		if err != nil {
  			return nil, err
  		}
  		err = c.cache.Add(objectEntry{
  			key: key,
  			obj: obj,
  		})
  		if err != nil {
  			return nil, err
  		}
  		return obj, nil
  	}
  	return value.(objectEntry).obj, nil
  }
docs: // Get gets cached objectEntry by using a unique string as the key.