mirror of
https://github.com/abice/go-enum.git
synced 2026-10-28 16:46:59 +08:00
* Add puncuation to comments * ForceLower and MustParse * Revert makefile changes Co-authored-by: Alex Bice <alex.bice@users.noreply.github.com>
283 lines
7.3 KiB
Go
283 lines
7.3 KiB
Go
// Code generated by go-enum DO NOT EDIT.
|
|
// Version: example
|
|
// Revision: example
|
|
// Build Date: example
|
|
// Built By: example
|
|
|
|
package example
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
)
|
|
|
|
const (
|
|
// MakeToyota is a Make of type Toyota.
|
|
MakeToyota Make = iota
|
|
// Skipped value.
|
|
_
|
|
// MakeChevy is a Make of type Chevy.
|
|
MakeChevy
|
|
// Skipped value.
|
|
_
|
|
// MakeFord is a Make of type Ford.
|
|
MakeFord
|
|
// Skipped value.
|
|
_
|
|
// MakeTesla is a Make of type Tesla.
|
|
MakeTesla
|
|
// Skipped value.
|
|
_
|
|
// MakeHyundai is a Make of type Hyundai.
|
|
MakeHyundai
|
|
// Skipped value.
|
|
_
|
|
// MakeNissan is a Make of type Nissan.
|
|
MakeNissan
|
|
// Skipped value.
|
|
_
|
|
// MakeJaguar is a Make of type Jaguar.
|
|
MakeJaguar
|
|
// Skipped value.
|
|
_
|
|
// MakeAudi is a Make of type Audi.
|
|
MakeAudi
|
|
// Skipped value.
|
|
_
|
|
// MakeBMW is a Make of type BMW.
|
|
MakeBMW
|
|
// Skipped value.
|
|
_
|
|
// MakeMercedesBenz is a Make of type Mercedes-Benz.
|
|
MakeMercedesBenz
|
|
// Skipped value.
|
|
_
|
|
// MakeVolkswagon is a Make of type Volkswagon.
|
|
MakeVolkswagon
|
|
)
|
|
|
|
const _MakeName = "ToyotaChevyFordTeslaHyundaiNissanJaguarAudiBMWMercedes-BenzVolkswagon"
|
|
|
|
var _MakeNames = []string{
|
|
_MakeName[0:6],
|
|
_MakeName[6:11],
|
|
_MakeName[11:15],
|
|
_MakeName[15:20],
|
|
_MakeName[20:27],
|
|
_MakeName[27:33],
|
|
_MakeName[33:39],
|
|
_MakeName[39:43],
|
|
_MakeName[43:46],
|
|
_MakeName[46:59],
|
|
_MakeName[59:69],
|
|
}
|
|
|
|
// MakeNames returns a list of possible string values of Make.
|
|
func MakeNames() []string {
|
|
tmp := make([]string, len(_MakeNames))
|
|
copy(tmp, _MakeNames)
|
|
return tmp
|
|
}
|
|
|
|
var _MakeMap = map[Make]string{
|
|
MakeToyota: _MakeName[0:6],
|
|
MakeChevy: _MakeName[6:11],
|
|
MakeFord: _MakeName[11:15],
|
|
MakeTesla: _MakeName[15:20],
|
|
MakeHyundai: _MakeName[20:27],
|
|
MakeNissan: _MakeName[27:33],
|
|
MakeJaguar: _MakeName[33:39],
|
|
MakeAudi: _MakeName[39:43],
|
|
MakeBMW: _MakeName[43:46],
|
|
MakeMercedesBenz: _MakeName[46:59],
|
|
MakeVolkswagon: _MakeName[59:69],
|
|
}
|
|
|
|
// String implements the Stringer interface.
|
|
func (x Make) String() string {
|
|
if str, ok := _MakeMap[x]; ok {
|
|
return str
|
|
}
|
|
return fmt.Sprintf("Make(%d)", x)
|
|
}
|
|
|
|
var _MakeValue = map[string]Make{
|
|
_MakeName[0:6]: MakeToyota,
|
|
strings.ToLower(_MakeName[0:6]): MakeToyota,
|
|
_MakeName[6:11]: MakeChevy,
|
|
strings.ToLower(_MakeName[6:11]): MakeChevy,
|
|
_MakeName[11:15]: MakeFord,
|
|
strings.ToLower(_MakeName[11:15]): MakeFord,
|
|
_MakeName[15:20]: MakeTesla,
|
|
strings.ToLower(_MakeName[15:20]): MakeTesla,
|
|
_MakeName[20:27]: MakeHyundai,
|
|
strings.ToLower(_MakeName[20:27]): MakeHyundai,
|
|
_MakeName[27:33]: MakeNissan,
|
|
strings.ToLower(_MakeName[27:33]): MakeNissan,
|
|
_MakeName[33:39]: MakeJaguar,
|
|
strings.ToLower(_MakeName[33:39]): MakeJaguar,
|
|
_MakeName[39:43]: MakeAudi,
|
|
strings.ToLower(_MakeName[39:43]): MakeAudi,
|
|
_MakeName[43:46]: MakeBMW,
|
|
strings.ToLower(_MakeName[43:46]): MakeBMW,
|
|
_MakeName[46:59]: MakeMercedesBenz,
|
|
strings.ToLower(_MakeName[46:59]): MakeMercedesBenz,
|
|
_MakeName[59:69]: MakeVolkswagon,
|
|
strings.ToLower(_MakeName[59:69]): MakeVolkswagon,
|
|
}
|
|
|
|
// ParseMake attempts to convert a string to a Make.
|
|
func ParseMake(name string) (Make, error) {
|
|
if x, ok := _MakeValue[name]; ok {
|
|
return x, nil
|
|
}
|
|
// Case insensitive parse, do a separate lookup to prevent unnecessary cost of lowercasing a string if we don't need to.
|
|
if x, ok := _MakeValue[strings.ToLower(name)]; ok {
|
|
return x, nil
|
|
}
|
|
return Make(0), fmt.Errorf("%s is not a valid Make, try [%s]", name, strings.Join(_MakeNames, ", "))
|
|
}
|
|
|
|
// MarshalText implements the text marshaller method.
|
|
func (x Make) MarshalText() ([]byte, error) {
|
|
return []byte(x.String()), nil
|
|
}
|
|
|
|
// UnmarshalText implements the text unmarshaller method.
|
|
func (x *Make) UnmarshalText(text []byte) error {
|
|
name := string(text)
|
|
tmp, err := ParseMake(name)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
*x = tmp
|
|
return nil
|
|
}
|
|
|
|
// Set implements the Golang flag.Value interface func.
|
|
func (x *Make) Set(val string) error {
|
|
v, err := ParseMake(val)
|
|
*x = v
|
|
return err
|
|
}
|
|
|
|
// Get implements the Golang flag.Getter interface func.
|
|
func (x *Make) Get() interface{} {
|
|
return *x
|
|
}
|
|
|
|
// Type implements the github.com/spf13/pFlag Value interface.
|
|
func (x *Make) Type() string {
|
|
return "Make"
|
|
}
|
|
|
|
const (
|
|
// NoZerosStart is a NoZeros of type Start.
|
|
NoZerosStart NoZeros = iota + 20
|
|
// NoZerosMiddle is a NoZeros of type Middle.
|
|
NoZerosMiddle
|
|
// NoZerosEnd is a NoZeros of type End.
|
|
NoZerosEnd
|
|
// NoZerosPs is a NoZeros of type Ps.
|
|
NoZerosPs
|
|
// NoZerosPps is a NoZeros of type Pps.
|
|
NoZerosPps
|
|
// NoZerosPpps is a NoZeros of type Ppps.
|
|
NoZerosPpps
|
|
)
|
|
|
|
const _NoZerosName = "startmiddleendpsppsppps"
|
|
|
|
var _NoZerosNames = []string{
|
|
_NoZerosName[0:5],
|
|
_NoZerosName[5:11],
|
|
_NoZerosName[11:14],
|
|
_NoZerosName[14:16],
|
|
_NoZerosName[16:19],
|
|
_NoZerosName[19:23],
|
|
}
|
|
|
|
// NoZerosNames returns a list of possible string values of NoZeros.
|
|
func NoZerosNames() []string {
|
|
tmp := make([]string, len(_NoZerosNames))
|
|
copy(tmp, _NoZerosNames)
|
|
return tmp
|
|
}
|
|
|
|
var _NoZerosMap = map[NoZeros]string{
|
|
NoZerosStart: _NoZerosName[0:5],
|
|
NoZerosMiddle: _NoZerosName[5:11],
|
|
NoZerosEnd: _NoZerosName[11:14],
|
|
NoZerosPs: _NoZerosName[14:16],
|
|
NoZerosPps: _NoZerosName[16:19],
|
|
NoZerosPpps: _NoZerosName[19:23],
|
|
}
|
|
|
|
// String implements the Stringer interface.
|
|
func (x NoZeros) String() string {
|
|
if str, ok := _NoZerosMap[x]; ok {
|
|
return str
|
|
}
|
|
return fmt.Sprintf("NoZeros(%d)", x)
|
|
}
|
|
|
|
var _NoZerosValue = map[string]NoZeros{
|
|
_NoZerosName[0:5]: NoZerosStart,
|
|
strings.ToLower(_NoZerosName[0:5]): NoZerosStart,
|
|
_NoZerosName[5:11]: NoZerosMiddle,
|
|
strings.ToLower(_NoZerosName[5:11]): NoZerosMiddle,
|
|
_NoZerosName[11:14]: NoZerosEnd,
|
|
strings.ToLower(_NoZerosName[11:14]): NoZerosEnd,
|
|
_NoZerosName[14:16]: NoZerosPs,
|
|
strings.ToLower(_NoZerosName[14:16]): NoZerosPs,
|
|
_NoZerosName[16:19]: NoZerosPps,
|
|
strings.ToLower(_NoZerosName[16:19]): NoZerosPps,
|
|
_NoZerosName[19:23]: NoZerosPpps,
|
|
strings.ToLower(_NoZerosName[19:23]): NoZerosPpps,
|
|
}
|
|
|
|
// ParseNoZeros attempts to convert a string to a NoZeros.
|
|
func ParseNoZeros(name string) (NoZeros, error) {
|
|
if x, ok := _NoZerosValue[name]; ok {
|
|
return x, nil
|
|
}
|
|
// Case insensitive parse, do a separate lookup to prevent unnecessary cost of lowercasing a string if we don't need to.
|
|
if x, ok := _NoZerosValue[strings.ToLower(name)]; ok {
|
|
return x, nil
|
|
}
|
|
return NoZeros(0), fmt.Errorf("%s is not a valid NoZeros, try [%s]", name, strings.Join(_NoZerosNames, ", "))
|
|
}
|
|
|
|
// MarshalText implements the text marshaller method.
|
|
func (x NoZeros) MarshalText() ([]byte, error) {
|
|
return []byte(x.String()), nil
|
|
}
|
|
|
|
// UnmarshalText implements the text unmarshaller method.
|
|
func (x *NoZeros) UnmarshalText(text []byte) error {
|
|
name := string(text)
|
|
tmp, err := ParseNoZeros(name)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
*x = tmp
|
|
return nil
|
|
}
|
|
|
|
// Set implements the Golang flag.Value interface func.
|
|
func (x *NoZeros) Set(val string) error {
|
|
v, err := ParseNoZeros(val)
|
|
*x = v
|
|
return err
|
|
}
|
|
|
|
// Get implements the Golang flag.Getter interface func.
|
|
func (x *NoZeros) Get() interface{} {
|
|
return *x
|
|
}
|
|
|
|
// Type implements the github.com/spf13/pFlag Value interface.
|
|
func (x *NoZeros) Type() string {
|
|
return "NoZeros"
|
|
}
|