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  }