@@ -2,55 +2,55 @@ package goset
22
33import "sync"
44
5- type concurrentSet [T comparable ] struct {
6- ncs * noconcurrentSet [T ]
5+ type safeSet [T comparable ] struct {
6+ ncs * unsafeSet [T ]
77 sync.RWMutex
88}
99
10- // Interface guard to assert concrete type:concurrentSet adheres to Set interface.
11- var _ Set [string ] = (* concurrentSet [string ])(nil )
10+ // Interface guard to assert concrete type:safeSet adheres to Set interface.
11+ var _ Set [string ] = (* safeSet [string ])(nil )
1212
13- func newConcurrentSet [T comparable ](size int ) * concurrentSet [T ] {
14- return & concurrentSet [T ]{
15- ncs : newNoConcurrentSet [T ](size ),
13+ func newSafeSet [T comparable ](size int ) * safeSet [T ] {
14+ return & safeSet [T ]{
15+ ncs : newUnsafeSet [T ](size ),
1616 }
1717}
1818
19- func (s * concurrentSet [T ]) Add (v T ) {
19+ func (s * safeSet [T ]) Add (v T ) {
2020 s .Lock ()
2121 defer s .Unlock ()
2222 s .ncs .Add (v )
2323}
2424
25- func (s * concurrentSet [T ]) Remove (v T ) {
25+ func (s * safeSet [T ]) Remove (v T ) {
2626 s .Lock ()
2727 defer s .Unlock ()
2828 s .ncs .Remove (v )
2929}
3030
31- func (s * concurrentSet [T ]) Contains (v T ) bool {
31+ func (s * safeSet [T ]) Contains (v T ) bool {
3232 s .RLock ()
3333 defer s .RUnlock ()
3434
3535 return s .ncs .Contains (v )
3636}
3737
38- func (s * concurrentSet [T ]) Size () int {
38+ func (s * safeSet [T ]) Size () int {
3939 s .RLock ()
4040 defer s .RUnlock ()
4141
4242 return s .ncs .Size ()
4343}
4444
45- func (s * concurrentSet [T ]) IsEmpty () bool {
45+ func (s * safeSet [T ]) IsEmpty () bool {
4646 s .RLock ()
4747 defer s .RUnlock ()
4848
4949 return s .ncs .IsEmpty ()
5050}
5151
52- func (s * concurrentSet [T ]) IsEqual (other Set [T ]) bool {
53- o , _ := other .(* concurrentSet [T ])
52+ func (s * safeSet [T ]) IsEqual (other Set [T ]) bool {
53+ o , _ := other .(* safeSet [T ])
5454
5555 s .RLock ()
5656 o .RLock ()
@@ -60,70 +60,70 @@ func (s *concurrentSet[T]) IsEqual(other Set[T]) bool {
6060 return s .ncs .IsEqual (o .ncs )
6161}
6262
63- func (s * concurrentSet [T ]) Clear () {
63+ func (s * safeSet [T ]) Clear () {
6464 s .Lock ()
6565 defer s .Unlock ()
6666 s .ncs .Clear ()
6767}
6868
69- func (s * concurrentSet [T ]) ToSlice () []T {
69+ func (s * safeSet [T ]) ToSlice () []T {
7070 s .RLock ()
7171 defer s .RUnlock ()
7272
7373 return s .ncs .ToSlice ()
7474}
7575
76- func (s * concurrentSet [T ]) Clone () Set [T ] {
76+ func (s * safeSet [T ]) Clone () Set [T ] {
7777 s .RLock ()
7878 defer s .RUnlock ()
79- clone , _ := s .ncs .Clone ().(* noconcurrentSet [T ])
79+ clone , _ := s .ncs .Clone ().(* unsafeSet [T ])
8080
81- return & concurrentSet [T ]{
81+ return & safeSet [T ]{
8282 ncs : clone ,
8383 }
8484}
8585
86- func (s * concurrentSet [T ]) Union (other Set [T ]) Set [T ] {
87- o , _ := other .(* concurrentSet [T ])
86+ func (s * safeSet [T ]) Union (other Set [T ]) Set [T ] {
87+ o , _ := other .(* safeSet [T ])
8888
8989 s .RLock ()
9090 o .RLock ()
9191 defer s .RUnlock ()
9292 defer o .RUnlock ()
9393
94- union , _ := s .ncs .Union (o .ncs ).(* noconcurrentSet [T ])
94+ union , _ := s .ncs .Union (o .ncs ).(* unsafeSet [T ])
9595
96- return & concurrentSet [T ]{
96+ return & safeSet [T ]{
9797 ncs : union ,
9898 }
9999}
100100
101- func (s * concurrentSet [T ]) Intersection (other Set [T ]) Set [T ] {
102- o , _ := other .(* concurrentSet [T ])
101+ func (s * safeSet [T ]) Intersection (other Set [T ]) Set [T ] {
102+ o , _ := other .(* safeSet [T ])
103103
104104 s .RLock ()
105105 o .RLock ()
106106 defer s .RUnlock ()
107107 defer o .RUnlock ()
108108
109- intersection , _ := s .ncs .Intersection (o .ncs ).(* noconcurrentSet [T ])
109+ intersection , _ := s .ncs .Intersection (o .ncs ).(* unsafeSet [T ])
110110
111- return & concurrentSet [T ]{
111+ return & safeSet [T ]{
112112 ncs : intersection ,
113113 }
114114}
115115
116- func (s * concurrentSet [T ]) Difference (other Set [T ]) Set [T ] {
117- o , _ := other .(* concurrentSet [T ])
116+ func (s * safeSet [T ]) Difference (other Set [T ]) Set [T ] {
117+ o , _ := other .(* safeSet [T ])
118118
119119 s .RLock ()
120120 o .RLock ()
121121 defer s .RUnlock ()
122122 defer o .RUnlock ()
123123
124- difference , _ := s .ncs .Difference (o .ncs ).(* noconcurrentSet [T ])
124+ difference , _ := s .ncs .Difference (o .ncs ).(* unsafeSet [T ])
125125
126- return & concurrentSet [T ]{
126+ return & safeSet [T ]{
127127 ncs : difference ,
128128 }
129129}
0 commit comments