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,
}