code: func setMetricsConfigWithOptionInterface(c *OperationsConfigOptions, o interface{}) error {
  	s := &setter{}
  
  	s.set(c.operation, func() bool { _, ok := o.(operation); return ok }, func() { c.operation = o.(operation) })
  	s.set(c.metricCfg, func() bool { _, ok := o.(metricCfg); return ok }, func() { c.metricCfg = o.(metricCfg) })
  
  	if !s.isSet {
  		return errors.Errorf("option %#v is not a sub interface of MetricsConfig, at least one of its functions must be implemented.", o)
  	}
  	return nil
  }
docs: // will override MetricsConfig interface with functions provided by o (option)