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

634 B

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

MIT

Credit to @segfaultax in the Discord Gophers server for the idea and starting implementation.