refactor!: options approach for experiments
This commit is contained in:
parent
804e6e8d9b
commit
9fedfb83b0
21
bot.go
21
bot.go
|
@ -30,21 +30,24 @@ type CwtchBot struct {
|
|||
experiments []string
|
||||
}
|
||||
|
||||
func NewCwtchBot(userdir string, peername string) *CwtchBot {
|
||||
cb := new(CwtchBot)
|
||||
cb.dir = userdir
|
||||
cb.peername = peername
|
||||
cb.engineHooks = connections.DefaultEngineHooks{}
|
||||
cb.experiments = nil
|
||||
return cb
|
||||
// CwtchBotOption modifies a new CwtchBot.
|
||||
type CwtchBotOption func(c *CwtchBot)
|
||||
|
||||
// WithExperiments specifies the experiments option of a CwtchBot.
|
||||
func WithExperiments(experiments []string) CwtchBotOption {
|
||||
return func(c *CwtchBot) {
|
||||
c.experiments = experiments
|
||||
}
|
||||
}
|
||||
|
||||
func NewCwtchBotWithExperiments(userdir string, peername string, experiments []string) *CwtchBot {
|
||||
func NewCwtchBot(userdir, peername string, opts ...CwtchBotOption) *CwtchBot {
|
||||
cb := new(CwtchBot)
|
||||
cb.dir = userdir
|
||||
cb.peername = peername
|
||||
cb.engineHooks = connections.DefaultEngineHooks{}
|
||||
cb.experiments = experiments
|
||||
for _, optFunc := range opts {
|
||||
optFunc(cb)
|
||||
}
|
||||
return cb
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue