29 lines
995 B
Go
29 lines
995 B
Go
package def
|
|
|
|
// Creating an enumeration of the resources in def.Task.
|
|
var taskResourceNames []string
|
|
|
|
type sortCriteria int
|
|
|
|
// Map a task's resource name to the sorting criteria (an integer corresponding to the enumeration).
|
|
func resourceToSortCriteria(resourceName string) sortCriteria {
|
|
// Appending resourceName to TaskResourceNames.
|
|
taskResourceNames = append(taskResourceNames, resourceName)
|
|
|
|
// Considering index of resource in TaskResourceNames to be the int mapping.
|
|
return sortCriteria(len(taskResourceNames) - 1)
|
|
}
|
|
|
|
func (sc sortCriteria) String() string {
|
|
return taskResourceNames[int(sc)]
|
|
}
|
|
|
|
// Possible Sorting Criteria
|
|
// Note: the value of the string passed as argument to resourceToSortCriteria() should be the same (case-sensitive)
|
|
// as the name of the of the corresponding resource in the struct.
|
|
var (
|
|
CPU = resourceToSortCriteria("CPU")
|
|
RAM = resourceToSortCriteria("RAM")
|
|
Watts = resourceToSortCriteria("Watts")
|
|
Instances = resourceToSortCriteria("Instances")
|
|
)
|