7 type ResultSet map[int]Anime
10 func (res Results) AIDList() (aid []int) {
11 aid = make([]int, 0, len(res))
12 for _, r := range res {
13 aid = append(aid, r.AID)
18 func (matches SearchMatches) ToResultSet(db *TitlesDatabase) (rs ResultSet) {
26 for _, m := range matches {
27 rs[m.AID] = *db.AnimeMap[m.AID]
32 func (rs ResultSet) unsortedResults() (res Results) {
33 res = make(Results, 0, len(rs))
34 for _, r := range rs {
40 // Returns true if the first parameter is less than the second parameter
41 type ResultComparer func(*Anime, *Anime) bool
44 aidSort = func(a *Anime, b *Anime) bool {
47 titleSort = func(a *Anime, b *Anime) bool {
48 return sort.StringSlice{a.PrimaryTitle, b.PrimaryTitle}.Less(0, 1)
52 func (rs ResultSet) ResultsByAID() (res Results) {
53 return rs.ResultsByFunc(aidSort)
56 func (rs ResultSet) ReverseResultsByAID() (res Results) {
57 return rs.ReverseResultsByFunc(aidSort)
60 func (rs ResultSet) ResultsByPrimaryTitle() (res Results) {
61 return rs.ResultsByFunc(titleSort)
64 func (rs ResultSet) ReverseResultsByPrimaryTitle() (res Results) {
65 return rs.ReverseResultsByFunc(titleSort)
68 func (rs ResultSet) ResultsByFunc(f ResultComparer) (res Results) {
69 res = rs.unsortedResults()
74 func (rs ResultSet) ReverseResultsByFunc(f ResultComparer) (res Results) {
75 res = rs.unsortedResults()