35 lines
477 B
Go
35 lines
477 B
Go
package diffsync
|
|
|
|
type Option struct {
|
|
Patcher Patcher
|
|
Differ Differ
|
|
}
|
|
|
|
func WithPatcher(p Patcher) OptionFunc {
|
|
return func(opt *Option) {
|
|
opt.Patcher = p
|
|
}
|
|
}
|
|
|
|
func WithDiffer(d Differ) OptionFunc {
|
|
return func(opt *Option) {
|
|
opt.Differ = d
|
|
}
|
|
}
|
|
|
|
type OptionFunc func(*Option)
|
|
|
|
func DefaultOption() *Option {
|
|
return MergeOption(
|
|
&Option{},
|
|
)
|
|
}
|
|
|
|
func MergeOption(opt *Option, funcs ...OptionFunc) *Option {
|
|
for _, fn := range funcs {
|
|
fn(opt)
|
|
}
|
|
|
|
return opt
|
|
}
|