zaphyra's git: airpodsctl

Control and monitor your AirPods

1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
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)
}