Иногда бывает утомительно описывать огромное количество опциональных параметров, но по факту это не очень сложная кодогенерация.
./options-codegen --input testdata --struct Simple
options.go
package options
type Simple struct {
//options:ignore
StringVal string
IntVal int
}
simple_options.go
// DO NOT EDIT!!!
package options
type Option func(options *Simple)
func OptionIntVal(option int) Option {
return func(options *Simple) {
options.IntVal = option
}
}