snapshot: use switch to parse snapshot.Kind

Signed-off-by: Stephen J Day <stephen.day@docker.com>
This commit is contained in:
Stephen J Day 2017-09-01 14:31:23 -07:00
parent 378e3343fe
commit 1c31199797
No known key found for this signature in database
GPG Key ID: 67B3DED84EDC823F

View File

@ -14,24 +14,37 @@ type Kind uint8
// definitions of snapshot kinds // definitions of snapshot kinds
const ( const (
KindView Kind = iota + 1 KindUnknown Kind = iota
KindView
KindActive KindActive
KindCommitted KindCommitted
) )
var ( func ParseKind(s string) Kind {
kindStrings = map[Kind]string{ s = strings.ToLower(s)
KindView: "view", switch s {
KindActive: "active", case "view":
KindCommitted: "committed", return KindView
case "active":
return KindActive
case "committed":
return KindCommitted
} }
)
return KindUnknown
}
func (k Kind) String() string { func (k Kind) String() string {
if s, ok := kindStrings[k]; ok { switch k {
return s case KindView:
return "View"
case KindActive:
return "Active"
case KindCommitted:
return "Committed"
} }
return "unknown"
return "Unknown"
} }
func (k Kind) MarshalJSON() ([]byte, error) { func (k Kind) MarshalJSON() ([]byte, error) {
@ -43,12 +56,8 @@ func (k *Kind) UnmarshalJSON(b []byte) error {
if err := json.Unmarshal(b, &s); err != nil { if err := json.Unmarshal(b, &s); err != nil {
return err return err
} }
for kk, ks := range kindStrings {
if strings.EqualFold(s, ks) { *k = ParseKind(s)
*k = kk
return nil
}
}
return nil return nil
} }