Files
go-enum/example/example_enum.go
T
Alex BiceandAlex Bice 07a5b318d9 ForceLowercase and MustParse (#80)
* Add puncuation to comments

* ForceLower and MustParse

* Revert makefile changes

Co-authored-by: Alex Bice <alex.bice@users.noreply.github.com>
2022-01-23 10:40:22 -07:00

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