You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
11 months ago | |
---|---|---|
.gitignore | 11 months ago | |
LICENSE | 11 months ago | |
README.md | 11 months ago | |
go.mod | 11 months ago | |
go.sum | 11 months ago | |
opt.go | 11 months ago | |
opt_example_test.go | 11 months ago | |
opt_test.go | 11 months ago |
README.md
opt
opt
is a tiny package that reduces boilerplate for functional options.
Simply decide whether your options can return errors or not, then use the corresponding type.
Without errors:
type Foo struct {
Bar string
}
func WithBar(b string) opt.Func[Foo] {
return func(f *Foo) {
f.Bar = b
}
}
With errors:
type Foo struct {
Bar string
}
func WithBar(b string) opt.ErrorFunc[Foo] {
return func(f *Foo) error {
f.Bar = b
return nil
}
}
License
Credit to @segfaultax
in the Discord Gophers server for the idea and starting implementation.