stringer
Install
go install github.com/moon-monitor/stringer@latest
Usage
1. Define the vobj
object
package vobj
// Gender gender
//
//go:generate stringer -type=Gender -linecomment -output=gender.string.go
type Gender int8
const (
GenderUnknown Gender = iota // unknown
GenderMale // male
GenderFemale // female
)
2. Generate the vobj
object
cd ./vobj && go generate
3. Generated code
// Code generated by "stringer -type=Gender -linecomment -output=gender.string.go"; DO NOT EDIT.
package vobj
import "strconv"
func _() {
// An "invalid array index" compiler error signifies that the constant values have changed.
// Re-run the stringer command to generate them again.
var x [1]struct{}
_ = x[GenderUnknown-0]
_ = x[GenderMale-1]
_ = x[GenderFemale-2]
}
const _Gender_name = "unknownmalefemale"
var _Gender_index = [...]uint8{0, 7, 11, 17}
func (i Gender) String() string {
if i < 0 || i >= Gender(len(_Gender_index)-1) {
return "Gender(" + strconv.FormatInt(int64(i), 10) + ")"
}
return _Gender_name[_Gender_index[i]:_Gender_index[i+1]]
}
// IsUnknown Is it unknown
func (i Gender) IsUnknown() bool {
return i == GenderUnknown
}
// IsMale Is it male
func (i Gender) IsMale() bool {
return i == GenderMale
}
// IsFemale Is it female
func (i Gender) IsFemale() bool {
return i == GenderFemale
}
// GetValue Retrieve the raw type value.
func (i Gender) GetValue() int8 {
return int8(i)
}