This repository has been archived on 2022-03-03. You can view files and clone it, but cannot push or open issues/pull-requests.
opt/README.md

38 lines
634 B
Markdown

# 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:
```go
type Foo struct {
Bar string
}
func WithBar(b string) opt.Func[Foo] {
return func(f *Foo) {
f.Bar = b
}
}
```
With errors:
```go
type Foo struct {
Bar string
}
func WithBar(b string) opt.ErrorFunc[Foo] {
return func(f *Foo) error {
f.Bar = b
return nil
}
}
```
## License
[MIT](LICENSE)
Credit to `@segfaultax` in the [Discord Gophers](https://discord.gg/golang) server for the idea and starting implementation.