# 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.