Skip to content

Commit 7687360

Browse files
authored
Remove size in OrderedSet (#2319)
1 parent 65b7507 commit 7687360

File tree

1 file changed

+22
-24
lines changed

1 file changed

+22
-24
lines changed

utils/orderedset.go

+22-24
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,8 @@ import (
1010
// - Uses a slice to maintain insertion order and enable ordered iteration
1111
// The data structure is safe for concurrent access through the use of a read-write mutex.
1212
type OrderedSet[K comparable, V any] struct {
13-
itemPos map[K]int // position of the node in the list
13+
itemPos map[K]int // position of the item in the list
1414
items []V
15-
size int
1615
lock sync.RWMutex
1716
}
1817

@@ -22,46 +21,45 @@ func NewOrderedSet[K comparable, V any]() *OrderedSet[K, V] {
2221
}
2322
}
2423

25-
func (ps *OrderedSet[K, V]) Put(key K, value V) {
26-
ps.lock.Lock()
27-
defer ps.lock.Unlock()
24+
func (o *OrderedSet[K, V]) Put(key K, value V) {
25+
o.lock.Lock()
26+
defer o.lock.Unlock()
2827

2928
// Update existing entry
30-
if pos, exists := ps.itemPos[key]; exists {
31-
ps.items[pos] = value
29+
if pos, exists := o.itemPos[key]; exists {
30+
o.items[pos] = value
3231
return
3332
}
3433

3534
// Insert new entry
36-
ps.itemPos[key] = len(ps.items)
37-
ps.items = append(ps.items, value)
38-
ps.size++
35+
o.itemPos[key] = len(o.items)
36+
o.items = append(o.items, value)
3937
}
4038

41-
func (ps *OrderedSet[K, V]) Get(key K) (V, bool) {
42-
ps.lock.RLock()
43-
defer ps.lock.RUnlock()
39+
func (o *OrderedSet[K, V]) Get(key K) (V, bool) {
40+
o.lock.RLock()
41+
defer o.lock.RUnlock()
4442

45-
if pos, ok := ps.itemPos[key]; ok {
46-
return ps.items[pos], true
43+
if pos, ok := o.itemPos[key]; ok {
44+
return o.items[pos], true
4745
}
4846
var zero V
4947
return zero, false
5048
}
5149

52-
func (ps *OrderedSet[K, V]) Size() int {
53-
ps.lock.RLock()
54-
defer ps.lock.RUnlock()
50+
func (o *OrderedSet[K, V]) Size() int {
51+
o.lock.RLock()
52+
defer o.lock.RUnlock()
5553

56-
return ps.size
54+
return len(o.items)
5755
}
5856

5957
// List returns a shallow copy of the proof set's value list.
60-
func (ps *OrderedSet[K, V]) List() []V {
61-
ps.lock.RLock()
62-
defer ps.lock.RUnlock()
58+
func (o *OrderedSet[K, V]) List() []V {
59+
o.lock.RLock()
60+
defer o.lock.RUnlock()
6361

64-
values := make([]V, len(ps.items))
65-
copy(values, ps.items)
62+
values := make([]V, len(o.items))
63+
copy(values, o.items)
6664
return values
6765
}

0 commit comments

Comments
 (0)