go install github.com/aide-family/stringer@latest
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
// 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 )
}