summaryrefslogtreecommitdiff
path: root/vendor/github.com/deckarep/golang-set/v2/iterator.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/deckarep/golang-set/v2/iterator.go')
-rw-r--r--vendor/github.com/deckarep/golang-set/v2/iterator.go58
1 files changed, 0 insertions, 58 deletions
diff --git a/vendor/github.com/deckarep/golang-set/v2/iterator.go b/vendor/github.com/deckarep/golang-set/v2/iterator.go
deleted file mode 100644
index fc14e70..0000000
--- a/vendor/github.com/deckarep/golang-set/v2/iterator.go
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
-Open Source Initiative OSI - The MIT License (MIT):Licensing
-
-The MIT License (MIT)
-Copyright (c) 2013 - 2022 Ralph Caraveo (deckarep@gmail.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-of the Software, and to permit persons to whom the Software is furnished to do
-so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-*/
-
-package mapset
-
-// Iterator defines an iterator over a Set, its C channel can be used to range over the Set's
-// elements.
-type Iterator[T comparable] struct {
- C <-chan T
- stop chan struct{}
-}
-
-// Stop stops the Iterator, no further elements will be received on C, C will be closed.
-func (i *Iterator[T]) Stop() {
- // Allows for Stop() to be called multiple times
- // (close() panics when called on already closed channel)
- defer func() {
- recover()
- }()
-
- close(i.stop)
-
- // Exhaust any remaining elements.
- for range i.C {
- }
-}
-
-// newIterator returns a new Iterator instance together with its item and stop channels.
-func newIterator[T comparable]() (*Iterator[T], chan<- T, <-chan struct{}) {
- itemChan := make(chan T)
- stopChan := make(chan struct{})
- return &Iterator[T]{
- C: itemChan,
- stop: stopChan,
- }, itemChan, stopChan
-}