I've got an alias type "LogLevel" which is a string:
type LogLevel string
const (
InfoLevel LogLevel = "info"
DebugLevel LogLevel = "debug"
WarnLevel LogLevel = "warn"
ErrorLevel LogLevel = "error"
PanicLevel LogLevel = "panic"
FatalLevel LogLevel = "fatal"
)
Now I'd like to do a switch case to check these consts against user input:
switch strings.ToLower(input) {
case "", InfoLevel:
return zap.NewAtomicLevelAt(zap.InfoLevel)
default:
fmt.Errorf("Invalid log level supplied '%s'. Defaulting to info loglevel", input)
return zap.NewAtomicLevelAt(zap.InfoLevel)
}
This doesn't work because apparently the types are incompatible?
invalid case InfoLevel in switch on strings.ToLower(input) (mismatched types LogLevel and string)
How can I use the defined consts in the cases?