Enumall is a tool to automate the creation of all const values for given type (enum).
enumall
is installable command line application.
go install github.com/tomaspavlic/enumall
Add Go's code generator comment to use enumall
.
//go:generate go run github.com/tomaspavlic/enumall@latest -type=Season
type Season uint8
const (
Spring Season = 1 << iota
Summer
Autumn
Winter
)
Run code generator inside your module.
go generate ./...
Generated code is named {$typeName}_all.go
. Variable containing all const values is All{$typeName}
// Code generated by "enumall -type=Season"; DO NOT EDIT.
package main
var AllSeason = []Season{
Spring,
Summer,
Autumn,
Winter,
}