| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 | package configimport (	"sort")type ConfigsSort struct {	Key        string	Order      string	ConfigList []Config}func boolToInt(b bool) int {	if b {		return 1	}	return 0}func (c ConfigsSort) Len() int {	return len(c.ConfigList)}func (c ConfigsSort) Less(i, j int) bool {	flag := false	switch c.Key {	case "name":		flag = c.ConfigList[i].Name > c.ConfigList[j].Name	case "modified_at":		flag = c.ConfigList[i].ModifiedAt.After(c.ConfigList[j].ModifiedAt)	case "is_dir":		flag = boolToInt(c.ConfigList[i].IsDir) > boolToInt(c.ConfigList[j].IsDir)	case "enabled":		flag = boolToInt(c.ConfigList[i].Enabled) > boolToInt(c.ConfigList[j].Enabled)	}	if c.Order == "asc" {		flag = !flag	}	return flag}func (c ConfigsSort) Swap(i, j int) {	c.ConfigList[i], c.ConfigList[j] = c.ConfigList[j], c.ConfigList[i]}func Sort(key string, order string, configs []Config) []Config {	configsSort := ConfigsSort{		Key:        key,		ConfigList: configs,		Order:      order,	}	sort.Sort(configsSort)	return configsSort.ConfigList}
 |