mirror of
https://github.com/abice/go-enum.git
synced 2026-10-28 16:46:59 +08:00
64 lines
1.2 KiB
Go
64 lines
1.2 KiB
Go
// Code generated by go-enum DO NOT EDIT.
|
|
// Version: example
|
|
// Revision: example
|
|
// Build Date: example
|
|
// Built By: example
|
|
|
|
//go:build example
|
|
// +build example
|
|
|
|
package example
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
)
|
|
|
|
const (
|
|
// BuggyA is a Buggy of type A.
|
|
BuggyA Buggy = 0
|
|
// BuggyB is a Buggy of type B.
|
|
BuggyB Buggy = 2
|
|
// BuggyC is a Buggy of type C.
|
|
BuggyC Buggy = 1
|
|
)
|
|
|
|
var ErrInvalidBuggy = errors.New("not a valid Buggy")
|
|
|
|
const _BuggyName = "ABC"
|
|
|
|
var _BuggyMap = map[Buggy]string{
|
|
BuggyA: _BuggyName[0:1],
|
|
BuggyB: _BuggyName[1:2],
|
|
BuggyC: _BuggyName[2:3],
|
|
}
|
|
|
|
// String implements the Stringer interface.
|
|
func (x Buggy) String() string {
|
|
if str, ok := _BuggyMap[x]; ok {
|
|
return str
|
|
}
|
|
return fmt.Sprintf("Buggy(%d)", x)
|
|
}
|
|
|
|
// IsValid provides a quick way to determine if the typed value is
|
|
// part of the allowed enumerated values
|
|
func (x Buggy) IsValid() bool {
|
|
_, ok := _BuggyMap[x]
|
|
return ok
|
|
}
|
|
|
|
var _BuggyValue = map[string]Buggy{
|
|
_BuggyName[0:1]: BuggyA,
|
|
_BuggyName[1:2]: BuggyB,
|
|
_BuggyName[2:3]: BuggyC,
|
|
}
|
|
|
|
// ParseBuggy attempts to convert a string to a Buggy.
|
|
func ParseBuggy(name string) (Buggy, error) {
|
|
if x, ok := _BuggyValue[name]; ok {
|
|
return x, nil
|
|
}
|
|
return Buggy(0), fmt.Errorf("%s is %w", name, ErrInvalidBuggy)
|
|
}
|