package types import ( "fmt" ) type OutputFormat int const ( FormatUnknown OutputFormat = iota FormatCLI FormatWaybar ) func (outputFormat *OutputFormat) Set(value string) (err error) { *outputFormat, err = ParseOutputFormat(value) return } func (outputFormat *OutputFormat) String() string { switch *outputFormat { case FormatUnknown: return "unknown" case FormatCLI: return "cli" case FormatWaybar: return "waybar" } return "" } func ParseOutputFormat(formatStr string) (OutputFormat, error) { switch formatStr { case "cli": return FormatCLI, nil case "waybar": return FormatWaybar, nil } return FormatUnknown, fmt.Errorf("Faild to parse output-format: %s\n", formatStr) }