code: func Set(c context.Context, key string, value interface{}, who, why string) error {
  	if s := GetSettings(c); s != nil {
  		return s.Set(c, key, value, who, why)
  	}
  	return ErrNoSettings
  }
docs: // Set overwrites a setting value for the given key.
  //
  // New settings will apply only when existing in-memory cache expires.
  // In particular, Get() right after Set() may still return old value.
  //
  // Returns ErrNoSettings if context doesn't have Settings implementation.