package agent import ( "time" ) type Option struct { Interval time.Duration Controllers []Controller } type OptionFunc func(*Option) func defaultOption() *Option { return &Option{ Controllers: make([]Controller, 0), Interval: 10 * time.Second, } } func WithControllers(controllers ...Controller) OptionFunc { return func(opt *Option) { opt.Controllers = controllers } } func WithInterval(interval time.Duration) OptionFunc { return func(opt *Option) { opt.Interval = interval } }