diff --git a/src/database/attributes.go b/src/database/attributes.go index e95b908..2a7693e 100644 --- a/src/database/attributes.go +++ b/src/database/attributes.go @@ -34,6 +34,21 @@ func (a *AttributeMap) GetAttributesFromList(attr string) []Attribute { return attributes } +func (a *AttributeMap) GetSortedAttributes(reverse bool) []Attribute { + // Return the attributes sorted by Rating from best to worst + attributes := make([]Attribute, 0, len(a.Attributes)) + for _, attr := range a.Attributes { + attributes = append(attributes, attr) + } + sort.Slice(attributes, func(i, j int) bool { + if reverse { + return attributes[i].Rating > attributes[j].Rating + } + return attributes[i].Rating < attributes[j].Rating + }) + return attributes +} + const ( AttributeRatingInfo = 0 AttributeRatingGood = 1