github.com/profzone/eden-framework@v1.0.10/internal/generator/api/enum.go (about) 1 package api 2 3 import ( 4 "github.com/profzone/eden-framework/pkg/enumeration" 5 "sort" 6 ) 7 8 type Enum enumeration.Enum 9 10 func (enum Enum) Sort() Enum { 11 sort.Slice(enum, func(i, j int) bool { 12 switch enum[i].Value.(type) { 13 case string: 14 return enum[i].Value.(string) < enum[j].Value.(string) 15 case int64: 16 return enum[i].Value.(int64) < enum[j].Value.(int64) 17 case float64: 18 return enum[i].Value.(float64) < enum[j].Value.(float64) 19 } 20 return true 21 }) 22 return enum 23 } 24 25 func (enum Enum) Labels() (labels []string) { 26 for _, e := range enum { 27 labels = append(labels, e.Label) 28 } 29 return 30 } 31 32 func (enum Enum) Vals() (vals []interface{}) { 33 for _, e := range enum { 34 vals = append(vals, e.Val) 35 } 36 return 37 } 38 39 func (enum Enum) Values() (values []interface{}) { 40 for _, e := range enum { 41 values = append(values, e.Value) 42 } 43 return 44 }