package options type defaultOptions struct { opts *Values } type stringKey struct{} func (d *defaultOptions) Init(opts ...Option) error { if d.opts == nil { d.opts = new(Values) } for _, o := range opts { if err := d.opts.Option(o); err != nil { return err } } return nil } func (d *defaultOptions) Values() *Values { return d.opts } func (d *defaultOptions) String() string { if d.opts == nil { d.opts = new(Values) } n, ok := d.opts.Get(stringKey{}) if ok { return n.(string) } return "Values" }