package search import "strings" type HitType string const ( DashHitDB HitType = "dash-db" DashHitHome HitType = "dash-home" DashHitFolder HitType = "dash-folder" ) type Hit struct { ID int64 `json:"id"` UID string `json:"uid"` Title string `json:"title"` URI string `json:"uri"` URL string `json:"url"` Slug string `json:"slug"` Type HitType `json:"type"` Tags []string `json:"tags"` IsStarred bool `json:"isStarred"` FolderID int64 `json:"folderId,omitempty"` FolderUID string `json:"folderUid,omitempty"` FolderTitle string `json:"folderTitle,omitempty"` FolderURL string `json:"folderUrl,omitempty"` SortMeta int64 `json:"sortMeta"` SortMetaName string `json:"sortMetaName,omitempty"` } type HitList []*Hit func (s HitList) Len() int { return len(s) } func (s HitList) Swap(i, j int) { s[i], s[j] = s[j], s[i] } func (s HitList) Less(i, j int) bool { if s[i].Type == "dash-folder" && s[j].Type == "dash-db" { return true } if s[i].Type == "dash-db" && s[j].Type == "dash-folder" { return false } return strings.ToLower(s[i].Title) < strings.ToLower(s[j].Title) }