Skip to content

Commit 88c1625

Browse files
committed
chore(BRIDGE-534): replace exp/maps and exp/slice with common utils & stdlib packages
1 parent a9973ea commit 88c1625

29 files changed

Lines changed: 493 additions & 53 deletions

benchmarks/gluon_bench/benchmark/run.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ import (
66
"fmt"
77
"os"
88
"path/filepath"
9+
"slices"
910

1011
"github.com/ProtonMail/gluon/benchmarks/gluon_bench/flags"
1112
"github.com/ProtonMail/gluon/benchmarks/gluon_bench/reporter"
12-
"golang.org/x/exp/slices"
1313
)
1414

1515
func RunMain() {

connector/dummy.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,16 @@ import (
55
"context"
66
"errors"
77
"fmt"
8+
"slices"
89
"sync"
910
"sync/atomic"
1011
"time"
1112

1213
"github.com/ProtonMail/gluon/constants"
1314
"github.com/ProtonMail/gluon/imap"
1415
"github.com/ProtonMail/gluon/internal/ticker"
15-
"github.com/ProtonMail/gluon/internal/utils"
16+
"github.com/ProtonMail/gluon/pkg/utils"
1617
"github.com/sirupsen/logrus"
17-
"golang.org/x/exp/slices"
1818
)
1919

2020
var (

connector/dummy_state.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ import (
66
"time"
77

88
"github.com/ProtonMail/gluon/imap"
9+
"github.com/ProtonMail/gluon/pkg/utils"
910
"github.com/bradenaw/juniper/xslices"
1011
"github.com/google/uuid"
11-
"golang.org/x/exp/maps"
1212
)
1313

1414
type dummyState struct {
@@ -61,7 +61,7 @@ func (state *dummyState) getMailboxes() []imap.Mailbox {
6161
state.lock.Lock()
6262
defer state.lock.Unlock()
6363

64-
return xslices.Map(maps.Keys(state.mailboxes), func(mboxID imap.MailboxID) imap.Mailbox {
64+
return xslices.Map(utils.Keys(state.mailboxes), func(mboxID imap.MailboxID) imap.Mailbox {
6565
return state.toMailbox(mboxID)
6666
})
6767
}
@@ -132,7 +132,7 @@ func (state *dummyState) getMessages() []imap.Message {
132132
state.lock.Lock()
133133
defer state.lock.Unlock()
134134

135-
return xslices.Map(maps.Keys(state.messages), func(messageID imap.MessageID) imap.Message {
135+
return xslices.Map(utils.Keys(state.messages), func(messageID imap.MessageID) imap.Message {
136136
return state.toMessage(messageID)
137137
})
138138
}
@@ -149,7 +149,7 @@ func (state *dummyState) getMessageCreatedUpdate(id imap.MessageID) (*imap.Messa
149149
return &imap.MessageCreated{
150150
Message: state.toMessage(id),
151151
Literal: msg.literal,
152-
MailboxIDs: maps.Keys(msg.mboxIDs),
152+
MailboxIDs: utils.Keys(msg.mboxIDs),
153153
ParsedMessage: msg.parsed,
154154
}, nil
155155
}
@@ -170,7 +170,7 @@ func (state *dummyState) getMailboxIDs(messageID imap.MessageID) []imap.MailboxI
170170
state.lock.Lock()
171171
defer state.lock.Unlock()
172172

173-
return maps.Keys(state.messages[messageID].mboxIDs)
173+
return utils.Keys(state.messages[messageID].mboxIDs)
174174
}
175175

176176
// nolint: unused

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ require (
1717
github.com/sirupsen/logrus v1.9.4
1818
github.com/stretchr/testify v1.11.1
1919
go.uber.org/goleak v1.3.0
20-
golang.org/x/exp v0.0.0-20260312153236-7ab1446f8b90
2120
golang.org/x/sys v0.43.0
2221
golang.org/x/text v0.36.0
2322
gopkg.in/yaml.v3 v3.0.1
@@ -31,6 +30,7 @@ require (
3130
github.com/kr/pretty v0.3.1 // indirect
3231
github.com/pmezard/go-difflib v1.0.0 // indirect
3332
github.com/rogpeppe/go-internal v1.10.0 // indirect
33+
golang.org/x/exp v0.0.0-20260312153236-7ab1446f8b90 // indirect
3434
golang.org/x/sync v0.20.0 // indirect
3535
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect
3636
)

imap/flags.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package imap
22

33
import (
4+
"slices"
45
"strings"
56

6-
"golang.org/x/exp/maps"
7-
"golang.org/x/exp/slices"
7+
"github.com/ProtonMail/gluon/pkg/utils"
88
)
99

1010
const (
@@ -70,7 +70,7 @@ func (fs FlagSet) Len() int {
7070
// ToSlice Returns the list of flags in the set as a sorted string slice. The returned list is a hard copy of the internal
7171
// slice to avoid direct modifications of the FlagSet value that would break the uniqueness and case insensitivity rules.
7272
func (fs FlagSet) ToSlice() []string {
73-
flags := maps.Values(fs)
73+
flags := utils.Values(fs)
7474

7575
slices.Sort(flags)
7676

@@ -79,7 +79,7 @@ func (fs FlagSet) ToSlice() []string {
7979

8080
// ToSliceUnsorted is the same as ToSlice, but does not sort the returned value.
8181
func (fs FlagSet) ToSliceUnsorted() []string {
82-
return maps.Values(fs)
82+
return utils.Values(fs)
8383
}
8484

8585
// Contains returns true if and only if the flag is in the set.
@@ -146,11 +146,11 @@ func (fs FlagSet) AddToSelf(flags ...string) {
146146
}
147147

148148
func (fs FlagSet) AddFlagSet(set FlagSet) FlagSet {
149-
return fs.Add(maps.Values(set)...)
149+
return fs.Add(utils.Values(set)...)
150150
}
151151

152152
func (fs FlagSet) AddFlagSetToSelf(set FlagSet) {
153-
fs.add(maps.Values(set)...)
153+
fs.add(utils.Values(set)...)
154154
}
155155

156156
func (fs FlagSet) add(flags ...string) {
@@ -191,15 +191,15 @@ func (fs FlagSet) Remove(flags ...string) FlagSet {
191191
}
192192

193193
func (fs FlagSet) RemoveFlagSet(set FlagSet) FlagSet {
194-
return fs.Remove(maps.Values(set)...)
194+
return fs.Remove(utils.Values(set)...)
195195
}
196196

197197
func (fs FlagSet) RemoveFromSelf(flags ...string) {
198198
fs.remove(flags...)
199199
}
200200

201201
func (fs FlagSet) RemoveFlagSetFromSelf(set FlagSet) {
202-
fs.Remove(maps.Values(set)...)
202+
fs.Remove(utils.Values(set)...)
203203
}
204204

205205
func (fs FlagSet) remove(flags ...string) {

imap/params.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ package imap
22

33
import (
44
"net/mail"
5+
"slices"
56
"strconv"
67
"strings"
78

8-
"golang.org/x/exp/maps"
9-
"golang.org/x/exp/slices"
9+
"github.com/ProtonMail/gluon/pkg/utils"
1010
)
1111

1212
type parListWriter interface {
@@ -114,7 +114,7 @@ func (c *paramList) addNumber(writer parListWriter, v int) *paramList {
114114
func (c *paramList) addMap(writer parListWriter, v map[string]string) *paramList {
115115
c.onWrite(writer)
116116

117-
keys := maps.Keys(v)
117+
keys := utils.Keys(v)
118118

119119
slices.Sort(keys)
120120

imap/seqset.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ package imap
22

33
import (
44
"fmt"
5+
"slices"
56
"strconv"
67
"strings"
78

89
"github.com/bradenaw/juniper/xslices"
9-
"golang.org/x/exp/slices"
1010
)
1111

1212
type SeqVal struct {

imap/uid_validity_generator_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
package imap
22

33
import (
4+
"slices"
45
"testing"
56
"time"
67

78
"github.com/bradenaw/juniper/parallel"
89
"github.com/stretchr/testify/assert"
910
"github.com/stretchr/testify/require"
10-
"golang.org/x/exp/slices"
1111
)
1212

1313
func TestEpochUIDValidityGenerator_Generate(t *testing.T) {

internal/backend/connector_updates.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,18 @@ import (
77
"io"
88
"os"
99
"runtime"
10+
"slices"
1011
"strings"
1112

1213
"github.com/ProtonMail/gluon/db"
1314
"github.com/ProtonMail/gluon/imap"
1415
"github.com/ProtonMail/gluon/internal/ids"
1516
"github.com/ProtonMail/gluon/internal/state"
16-
"github.com/ProtonMail/gluon/internal/utils"
17+
"github.com/ProtonMail/gluon/pkg/utils"
1718
"github.com/ProtonMail/gluon/rfc822"
1819
"github.com/bradenaw/juniper/parallel"
1920
"github.com/bradenaw/juniper/xslices"
2021
"github.com/sirupsen/logrus"
21-
"golang.org/x/exp/slices"
2222
)
2323

2424
// apply an incoming update originating from the connector.
@@ -344,7 +344,9 @@ func (user *user) applyMessagesCreated(ctx context.Context, update *imap.Message
344344
messageForMBox[v] = messageList
345345
}
346346

347-
if !slices.ContainsFunc(messageList, func(id db.MessageIDPair) bool { return id.InternalID == internalID }) {
347+
if !slices.ContainsFunc(messageList, func(id db.MessageIDPair) bool {
348+
return id.InternalID == internalID
349+
}) {
348350
messageList = append(messageList, db.MessageIDPair{InternalID: internalID, RemoteID: message.Message.ID})
349351
messageForMBox[v] = messageList
350352
}

internal/backend/user.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ import (
1616
"github.com/ProtonMail/gluon/logging"
1717
"github.com/ProtonMail/gluon/observability"
1818
"github.com/ProtonMail/gluon/observability/metrics"
19+
pkgutils "github.com/ProtonMail/gluon/pkg/utils"
1920
"github.com/ProtonMail/gluon/reporter"
2021
"github.com/ProtonMail/gluon/store"
2122
"github.com/bradenaw/juniper/xslices"
2223
"github.com/sirupsen/logrus"
23-
"golang.org/x/exp/maps"
2424
)
2525

2626
type user struct {
@@ -298,8 +298,8 @@ func (user *user) removeState(ctx context.Context, st *state.State) error {
298298
return nil, fmt.Errorf("no such state")
299299
}
300300

301-
messageIDs = utils.Filter(messageIDs, func(messageID imap.InternalMessageID) bool {
302-
return xslices.CountFunc(maps.Values(user.states), func(other *state.State) bool {
301+
messageIDs = pkgutils.Filter(messageIDs, func(messageID imap.InternalMessageID) bool {
302+
return xslices.CountFunc(pkgutils.Values(user.states), func(other *state.State) bool {
303303
return st != other && other.HasMessage(messageID)
304304
}) == 0
305305
})
@@ -372,7 +372,7 @@ func (user *user) cleanupStaleStoreData(ctx context.Context) error {
372372
return err
373373
}
374374

375-
idsToDelete := utils.Filter(storeIds, func(id imap.InternalMessageID) bool {
375+
idsToDelete := pkgutils.Filter(storeIds, func(id imap.InternalMessageID) bool {
376376
_, ok := dbIdMap[id]
377377

378378
return !ok

0 commit comments

Comments
 (0)