Files
guesstimate/server/internal/diffsync/option.go
William Petit d9fb51394c Frontend/backend project structure
+ Base implementation of a differential synchronization based on Neil
  Fraser article/talk

See https://www.youtube.com/watch?v=S2Hp_1jqpY8
2020-04-27 22:43:42 +02:00

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
}