[PATCH] plugins/base/imap: use slices package
Export this patch
This saves a few lines of code.
Signed-off-by: Silvan Jegen <s.jegen@gmail.com>
---
plugins/base/imap.go | 22 +++++++++ -------------
1 file changed, 9 insertions(+), 13 deletions(-)
diff --git a/plugins/base/imap.go b/plugins/base/imap.go
index ec4947d..55ea5cb 100644
--- a/plugins/base/imap.go
+++ b/plugins/base/imap.go
@@ -6,10 +6,9 @@ import (
"fmt"
"io"
"net/url"
- "sort"
+ "slices"
"strconv"
"strings"
- //"time"
"github.com/dustin/go-humanize"
"github.com/emersion/go-imap/v2"
@@ -73,14 +72,15 @@ func listMailboxes(conn *imapclient.Client) ([]MailboxInfo, error) {
return nil, fmt.Errorf("failed to list mailboxes: %v", err)
}
- sort.Slice(mailboxes, func(i, j int) bool {
- if mailboxes[i].Mailbox == "INBOX" {
- return true
+ slices.SortFunc(mailboxes, func(i, j MailboxInfo) int {
+ if i.Mailbox == "INBOX" {
+ return 1
}
- if mailboxes[j].Mailbox == "INBOX" {
- return false
+ if j.Mailbox == "INBOX" {
+ return -1
}
- return mailboxes[i].Mailbox < mailboxes[j].Mailbox
+
+ return strings.Compare(i.Mailbox, j.Mailbox)
})
return mailboxes, nil
}
@@ -465,11 +465,7 @@ func listMessages(conn *imapclient.Client, mboxName string, page, messagesPerPag
msgs = append(msgs, IMAPMessage{msg, mboxName})
}
- // Reverse list of messages
- for i := len(msgs)/2 - 1; i >= 0; i-- {
- opp := len(msgs) - 1 - i
- msgs[i], msgs[opp] = msgs[opp], msgs[i]
- }
+ slices.Reverse(msgs)
return msgs, total, nil
}
--
2.47.1
The slices package was introduced in Go 1.21. If we're going to use this
package then go.mod needs to be updated as it's currently coded to 1.18.
Peter