1
- package oidctest
1
+ package syncmap
2
2
3
3
import "sync"
4
4
5
- // SyncMap is a type safe sync.Map
6
- type SyncMap [K , V any ] struct {
5
+ // Map is a type safe sync.Map
6
+ type Map [K , V any ] struct {
7
7
m sync.Map
8
8
}
9
9
10
- func NewSyncMap [K , V any ]() * SyncMap [K , V ] {
11
- return & SyncMap [K , V ]{
10
+ func New [K , V any ]() * Map [K , V ] {
11
+ return & Map [K , V ]{
12
12
m : sync.Map {},
13
13
}
14
14
}
15
15
16
- func (m * SyncMap [K , V ]) Store (k K , v V ) {
16
+ func (m * Map [K , V ]) Store (k K , v V ) {
17
17
m .m .Store (k , v )
18
18
}
19
19
20
20
//nolint:forcetypeassert
21
- func (m * SyncMap [K , V ]) Load (key K ) (value V , ok bool ) {
21
+ func (m * Map [K , V ]) Load (key K ) (value V , ok bool ) {
22
22
v , ok := m .m .Load (key )
23
23
if ! ok {
24
24
var empty V
@@ -27,12 +27,12 @@ func (m *SyncMap[K, V]) Load(key K) (value V, ok bool) {
27
27
return v .(V ), ok
28
28
}
29
29
30
- func (m * SyncMap [K , V ]) Delete (key K ) {
30
+ func (m * Map [K , V ]) Delete (key K ) {
31
31
m .m .Delete (key )
32
32
}
33
33
34
34
//nolint:forcetypeassert
35
- func (m * SyncMap [K , V ]) LoadAndDelete (key K ) (actual V , loaded bool ) {
35
+ func (m * Map [K , V ]) LoadAndDelete (key K ) (actual V , loaded bool ) {
36
36
act , loaded := m .m .LoadAndDelete (key )
37
37
if ! loaded {
38
38
var empty V
@@ -42,7 +42,7 @@ func (m *SyncMap[K, V]) LoadAndDelete(key K) (actual V, loaded bool) {
42
42
}
43
43
44
44
//nolint:forcetypeassert
45
- func (m * SyncMap [K , V ]) LoadOrStore (key K , value V ) (actual V , loaded bool ) {
45
+ func (m * Map [K , V ]) LoadOrStore (key K , value V ) (actual V , loaded bool ) {
46
46
act , loaded := m .m .LoadOrStore (key , value )
47
47
if ! loaded {
48
48
var empty V
@@ -51,16 +51,16 @@ func (m *SyncMap[K, V]) LoadOrStore(key K, value V) (actual V, loaded bool) {
51
51
return act .(V ), loaded
52
52
}
53
53
54
- func (m * SyncMap [K , V ]) CompareAndSwap (key K , old V , new V ) bool {
54
+ func (m * Map [K , V ]) CompareAndSwap (key K , old V , new V ) bool {
55
55
return m .m .CompareAndSwap (key , old , new )
56
56
}
57
57
58
- func (m * SyncMap [K , V ]) CompareAndDelete (key K , old V ) (deleted bool ) {
58
+ func (m * Map [K , V ]) CompareAndDelete (key K , old V ) (deleted bool ) {
59
59
return m .m .CompareAndDelete (key , old )
60
60
}
61
61
62
62
//nolint:forcetypeassert
63
- func (m * SyncMap [K , V ]) Swap (key K , value V ) (previous any , loaded bool ) {
63
+ func (m * Map [K , V ]) Swap (key K , value V ) (previous any , loaded bool ) {
64
64
previous , loaded = m .m .Swap (key , value )
65
65
if ! loaded {
66
66
var empty V
@@ -70,7 +70,7 @@ func (m *SyncMap[K, V]) Swap(key K, value V) (previous any, loaded bool) {
70
70
}
71
71
72
72
//nolint:forcetypeassert
73
- func (m * SyncMap [K , V ]) Range (f func (key K , value V ) bool ) {
73
+ func (m * Map [K , V ]) Range (f func (key K , value V ) bool ) {
74
74
m .m .Range (func (key , value interface {}) bool {
75
75
return f (key .(K ), value .(V ))
76
76
})
0 commit comments