// 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 ( "fmt" "strings" ) const ( // AcmeInc_SOME_PLACE_AWESOME is a Shop of type SOME_PLACE_AWESOME. AcmeInc_SOME_PLACE_AWESOME Shop = "SOME_PLACE_AWESOME" // AcmeInc_SomewhereElse is a Shop of type SomewhereElse. AcmeInc_SomewhereElse Shop = "SomewhereElse" // AcmeInc_LocationUnknown is a Shop of type LocationUnknown. AcmeInc_LocationUnknown Shop = "LocationUnknown" ) var ErrInvalidShop = fmt.Errorf("not a valid Shop, try [%s]", strings.Join(_ShopNames, ", ")) var _ShopNames = []string{ string(AcmeInc_SOME_PLACE_AWESOME), string(AcmeInc_SomewhereElse), string(AcmeInc_LocationUnknown), } // ShopNames returns a list of possible string values of Shop. func ShopNames() []string { tmp := make([]string, len(_ShopNames)) copy(tmp, _ShopNames) return tmp } // String implements the Stringer interface. func (x Shop) String() string { return string(x) } // IsValid provides a quick way to determine if the typed value is // part of the allowed enumerated values func (x Shop) IsValid() bool { _, err := ParseShop(string(x)) return err == nil } var _ShopValue = map[string]Shop{ "SOME_PLACE_AWESOME": AcmeInc_SOME_PLACE_AWESOME, "SomewhereElse": AcmeInc_SomewhereElse, "LocationUnknown": AcmeInc_LocationUnknown, } // ParseShop attempts to convert a string to a Shop. func ParseShop(name string) (Shop, error) { if x, ok := _ShopValue[name]; ok { return x, nil } return Shop(""), fmt.Errorf("%s is %w", name, ErrInvalidShop) } // MarshalText implements the text marshaller method. func (x Shop) MarshalText() ([]byte, error) { return []byte(string(x)), nil } // UnmarshalText implements the text unmarshaller method. func (x *Shop) UnmarshalText(text []byte) error { tmp, err := ParseShop(string(text)) if err != nil { return err } *x = tmp return nil } // AppendText appends the textual representation of itself to the end of b // (allocating a larger slice if necessary) and returns the updated slice. // // Implementations must not retain b, nor mutate any bytes within b[:len(b)]. func (x Shop) AppendText(b []byte) ([]byte, error) { return append(b, x.String()...), nil }