evcc-io/cmd/class_enumer.go

147 lines
4.3 KiB
Go

// Code generated by "enumer -type Class -trimprefix Class -transform=lower -text"; DO NOT EDIT.
package cmd
import (
"fmt"
"strings"
)
const _ClassName = "meterchargervehicletariffcircuitsitemqttdatabasemodbusproxyeebusjavascriptgohemsinfluxmessengersponsorship"
var _ClassIndex = [...]uint8{0, 5, 12, 19, 25, 32, 36, 40, 48, 59, 64, 74, 76, 80, 86, 95, 106}
const _ClassLowerName = "meterchargervehicletariffcircuitsitemqttdatabasemodbusproxyeebusjavascriptgohemsinfluxmessengersponsorship"
func (i Class) String() string {
i -= 1
if i < 0 || i >= Class(len(_ClassIndex)-1) {
return fmt.Sprintf("Class(%d)", i+1)
}
return _ClassName[_ClassIndex[i]:_ClassIndex[i+1]]
}
// An "invalid array index" compiler error signifies that the constant values have changed.
// Re-run the stringer command to generate them again.
func _ClassNoOp() {
var x [1]struct{}
_ = x[ClassMeter-(1)]
_ = x[ClassCharger-(2)]
_ = x[ClassVehicle-(3)]
_ = x[ClassTariff-(4)]
_ = x[ClassCircuit-(5)]
_ = x[ClassSite-(6)]
_ = x[ClassMqtt-(7)]
_ = x[ClassDatabase-(8)]
_ = x[ClassModbusProxy-(9)]
_ = x[ClassEEBus-(10)]
_ = x[ClassJavascript-(11)]
_ = x[ClassGo-(12)]
_ = x[ClassHEMS-(13)]
_ = x[ClassInflux-(14)]
_ = x[ClassMessenger-(15)]
_ = x[ClassSponsorship-(16)]
}
var _ClassValues = []Class{ClassMeter, ClassCharger, ClassVehicle, ClassTariff, ClassCircuit, ClassSite, ClassMqtt, ClassDatabase, ClassModbusProxy, ClassEEBus, ClassJavascript, ClassGo, ClassHEMS, ClassInflux, ClassMessenger, ClassSponsorship}
var _ClassNameToValueMap = map[string]Class{
_ClassName[0:5]: ClassMeter,
_ClassLowerName[0:5]: ClassMeter,
_ClassName[5:12]: ClassCharger,
_ClassLowerName[5:12]: ClassCharger,
_ClassName[12:19]: ClassVehicle,
_ClassLowerName[12:19]: ClassVehicle,
_ClassName[19:25]: ClassTariff,
_ClassLowerName[19:25]: ClassTariff,
_ClassName[25:32]: ClassCircuit,
_ClassLowerName[25:32]: ClassCircuit,
_ClassName[32:36]: ClassSite,
_ClassLowerName[32:36]: ClassSite,
_ClassName[36:40]: ClassMqtt,
_ClassLowerName[36:40]: ClassMqtt,
_ClassName[40:48]: ClassDatabase,
_ClassLowerName[40:48]: ClassDatabase,
_ClassName[48:59]: ClassModbusProxy,
_ClassLowerName[48:59]: ClassModbusProxy,
_ClassName[59:64]: ClassEEBus,
_ClassLowerName[59:64]: ClassEEBus,
_ClassName[64:74]: ClassJavascript,
_ClassLowerName[64:74]: ClassJavascript,
_ClassName[74:76]: ClassGo,
_ClassLowerName[74:76]: ClassGo,
_ClassName[76:80]: ClassHEMS,
_ClassLowerName[76:80]: ClassHEMS,
_ClassName[80:86]: ClassInflux,
_ClassLowerName[80:86]: ClassInflux,
_ClassName[86:95]: ClassMessenger,
_ClassLowerName[86:95]: ClassMessenger,
_ClassName[95:106]: ClassSponsorship,
_ClassLowerName[95:106]: ClassSponsorship,
}
var _ClassNames = []string{
_ClassName[0:5],
_ClassName[5:12],
_ClassName[12:19],
_ClassName[19:25],
_ClassName[25:32],
_ClassName[32:36],
_ClassName[36:40],
_ClassName[40:48],
_ClassName[48:59],
_ClassName[59:64],
_ClassName[64:74],
_ClassName[74:76],
_ClassName[76:80],
_ClassName[80:86],
_ClassName[86:95],
_ClassName[95:106],
}
// ClassString retrieves an enum value from the enum constants string name.
// Throws an error if the param is not part of the enum.
func ClassString(s string) (Class, error) {
if val, ok := _ClassNameToValueMap[s]; ok {
return val, nil
}
if val, ok := _ClassNameToValueMap[strings.ToLower(s)]; ok {
return val, nil
}
return 0, fmt.Errorf("%s does not belong to Class values", s)
}
// ClassValues returns all values of the enum
func ClassValues() []Class {
return _ClassValues
}
// ClassStrings returns a slice of all String values of the enum
func ClassStrings() []string {
strs := make([]string, len(_ClassNames))
copy(strs, _ClassNames)
return strs
}
// IsAClass returns "true" if the value is listed in the enum definition. "false" otherwise
func (i Class) IsAClass() bool {
for _, v := range _ClassValues {
if i == v {
return true
}
}
return false
}
// MarshalText implements the encoding.TextMarshaler interface for Class
func (i Class) MarshalText() ([]byte, error) {
return []byte(i.String()), nil
}
// UnmarshalText implements the encoding.TextUnmarshaler interface for Class
func (i *Class) UnmarshalText(text []byte) error {
var err error
*i, err = ClassString(string(text))
return err
}