Skip to content

Latest commit

 

History

History
50 lines (35 loc) · 930 Bytes

README.md

File metadata and controls

50 lines (35 loc) · 930 Bytes

Enumall

Go

Enumall is a tool to automate the creation of all const values for given type (enum).

Installation

enumall is installable command line application.

go install github.com/tomaspavlic/enumall

Usage

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