1package bug
2
3import (
4 "fmt"
5 "strings"
6)
7
8type Status int
9
10const (
11 _ Status = iota
12 OpenStatus
13 ClosedStatus
14)
15
16func (s Status) String() string {
17 switch s {
18 case OpenStatus:
19 return "open"
20 case ClosedStatus:
21 return "closed"
22 default:
23 return "unknown status"
24 }
25}
26
27func (s Status) Action() string {
28 switch s {
29 case OpenStatus:
30 return "opened"
31 case ClosedStatus:
32 return "closed"
33 default:
34 return "unknown status"
35 }
36}
37
38func StatusFromString(str string) (Status, error) {
39 cleaned := strings.ToLower(strings.TrimSpace(str))
40
41 switch cleaned {
42 case "open":
43 return OpenStatus, nil
44 case "closed":
45 return ClosedStatus, nil
46 default:
47 return 0, fmt.Errorf("unknow status")
48 }
49}