mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-05-19 08:20:13 +00:00
chore: teach set
module about iter.Seq
(#6676)
- Add a new `Seq` function to the `Set` type, this returns an iterator over the values. - Convert some users of the `Values` method to allow for more optimal code. Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/6676 Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org> Co-authored-by: Gusted <postmaster@gusted.xyz> Co-committed-by: Gusted <postmaster@gusted.xyz>
This commit is contained in:
parent
46e60ce966
commit
443f7d59f9
9 changed files with 38 additions and 28 deletions
|
@ -3,6 +3,11 @@
|
|||
|
||||
package container
|
||||
|
||||
import (
|
||||
"iter"
|
||||
"maps"
|
||||
)
|
||||
|
||||
type Set[T comparable] map[T]struct{}
|
||||
|
||||
// SetOf creates a set and adds the specified elements to it.
|
||||
|
@ -63,3 +68,9 @@ func (s Set[T]) Values() []T {
|
|||
}
|
||||
return keys
|
||||
}
|
||||
|
||||
// Seq returns a iterator over the elements in the set.
|
||||
// It returns a single-use iterator.
|
||||
func (s Set[T]) Seq() iter.Seq[T] {
|
||||
return maps.Keys(s)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue