sets

package module
v1.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 19, 2024 License: Apache-2.0 Imports: 1 Imported by: 1

README

sets

supportT which implement comparable interface and builtin type.

Go.Dev reference codecov Tests Go Report Card License Tag

License

This project is under MIT License. See the LICENSE file for the full license text.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Set

type Set[T comparable] map[T]struct{}

Set sets.Set is a set of `T`, implemented via map[T]struct{} for minimal memory consumption.

func New

func New[T comparable](items ...T) Set[T]

New creates a T from a list of values.

func NewFrom

func NewFrom[T comparable, V any, M ~map[T]V](m M) Set[T]

NewFrom creates a T from a keys of a map[T](? extends any). If the value passed in is not actually a map, this will panic.

func (Set[T]) All added in v1.4.1

func (s Set[T]) All() iter.Seq[T]

All iterator over sequences of individual values.

func (Set[T]) Clone

func (s Set[T]) Clone() Set[T]

Clone returns a new Set with a copy of s.

func (Set[T]) Contains

func (s Set[T]) Contains(item T) bool

Contains returns true if and only if item is contained in the set.

func (Set[T]) ContainsAll

func (s Set[T]) ContainsAll(items ...T) bool

ContainsAll returns true if and only if all items are contained in the set.

func (Set[T]) ContainsAny

func (s Set[T]) ContainsAny(items ...T) bool

ContainsAny returns true if any items are contained in the set.

func (Set[T]) Delete

func (s Set[T]) Delete(items ...T) Set[T]

Delete removes all items from the set.

func (Set[T]) Diff deprecated

func (s Set[T]) Diff(s2 Set[T]) (added, removed, remained Set[T])

Diff returns s vary of s2, return added, removed, remained sets with the given s2 set.

Deprecated: use VaryIntersection instead.

func (Set[T]) DiffSlice deprecated

func (s Set[T]) DiffSlice(s2 Set[T]) (added, removed, remained []T)

DiffSlice returns s vary of s2, return added, removed, remained slices with the given s2 set.

Deprecated: use VaryIntersectionSlice instead.

func (Set[T]) DiffVary deprecated

func (s Set[T]) DiffVary(s2 Set[T]) (added, removed Set[T])

DiffVary returns s vary of s2, return added, removed sets with the given s2 set.

Deprecated: use Vary instead.

func (Set[T]) DiffVarySlice deprecated

func (s Set[T]) DiffVarySlice(s2 Set[T]) (added, removed []T)

DiffVarySlice returns s vary of s2, return added, removed slices with the given s2 set.

Deprecated: use VarySlice instead.

func (Set[T]) Difference

func (s Set[T]) Difference(s2 Set[T]) Set[T]

Difference returns a set of objects that are not in s2 For example: s1 = {a1, a2, a3} s2 = {a1, a2, a4, a5} s1.Difference(s2) = {a3} s2.Difference(s1) = {a4, a5}.

func (Set[T]) DifferenceSlice

func (s Set[T]) DifferenceSlice(s2 Set[T]) []T

DifferenceSlice returns a slices of objects that are not in s2 For example: s1 = {a1, a2, a3} s2 = {a1, a2, a4, a5} s1.Difference(s2) = {a3} s2.Difference(s1) = {a4, a5}.

func (Set[T]) Each

func (s Set[T]) Each(f func(item T) bool)

Each traverses the items in the Set, calling the provided function for each set member. Traversal will continue until all items in the Set have been visited, or if the closure returns false.

func (Set[T]) Equal

func (s Set[T]) Equal(s2 Set[T]) bool

Equal returns true if and only if s1 is equal (as a set) to s2. Two sets are equal if their membership is identical. (In practice, this means same elements, order doesn't matter).

func (Set[T]) Insert

func (s Set[T]) Insert(items ...T) Set[T]

Insert adds items to the set.

func (Set[T]) Intersection

func (s Set[T]) Intersection(s2 Set[T]) Set[T]

Intersection returns a new set which includes the item in BOTH s1 and s2 For example: s1 = {a1, a2} s2 = {a2, a3} s1.Intersection(s2) = {a2}.

func (Set[T]) IntersectionSlice

func (s Set[T]) IntersectionSlice(s2 Set[T]) []T

IntersectionSlice returns a slice which includes the item in BOTH s1 and s2 For example: s1 = {a1, a2} s2 = {a2, a3} s1.Intersection(s2) = {a2}.

func (Set[T]) IsSubset

func (s Set[T]) IsSubset(s2 Set[T]) bool

IsSubset returns true if and only if s1 is a superset of s2.

func (Set[T]) IsSuperset

func (s Set[T]) IsSuperset(s2 Set[T]) bool

IsSuperset returns true if and only if s1 is a superset of s2.

func (Set[T]) Len

func (s Set[T]) Len() int

Len returns the size of the set.

func (Set[T]) List deprecated

func (s Set[T]) List() []T

List returns the value of the sets.

Deprecated: use Values instead.

func (Set[T]) Merge

func (s Set[T]) Merge(s2 Set[T]) Set[T]

Merge is like Union, however it modifies the current set it's applied on with the given s2 set. For example: s1 = {a1, a2} s2 = {a3, a4} s1.Merge(s2), s1 = {a1, a2, a3, a4} s2.Merge(s1), s2 = {a1, a2, a3, a4}.

func (Set[T]) Pop

func (s Set[T]) Pop() (v T, ok bool)

Pop Returns a single element from the set.

func (Set[T]) Union

func (s Set[T]) Union(s2 Set[T]) Set[T]

Union returns a new set which includes items in either s1 or s2. For example: s1 = {a1, a2} s2 = {a3, a4} s1.Union(s2) = {a1, a2, a3, a4} s2.Union(s1) = {a1, a2, a3, a4}.

func (Set[T]) UnionSlice

func (s Set[T]) UnionSlice(s2 Set[T]) []T

UnionSlice returns a slice which includes items in either s1 or s2. For example: s1 = {a1, a2} s2 = {a3, a4} s1.Union(s2) = {a1, a2, a3, a4} s2.Union(s1) = {a1, a2, a3, a4}.

func (Set[T]) Values

func (s Set[T]) Values() []T

Values returns the value of the sets.

func (Set[T]) Vary added in v1.4.2

func (s Set[T]) Vary(s2 Set[T]) (added, removed Set[T])

Vary returns s vary of s2, return added, removed sets with the given s2 set. For example: s1 = {a1, a3, a5, a7} s2 = {a3, a4, a5, a6} added = {a4, a6} removed = {a1, a7}

func (Set[T]) VaryIntersection added in v1.4.2

func (s Set[T]) VaryIntersection(s2 Set[T]) (added, removed, remained Set[T])

VaryIntersection returns s vary of s2, return added, removed, remained sets with the given s2 set. For example: s1 = {a1, a3, a5, a7} s2 = {a3, a4, a5, a6} added = {a4, a6} removed = {a1, a7} remained = {a3, a6}

func (Set[T]) VaryIntersectionSlice added in v1.4.2

func (s Set[T]) VaryIntersectionSlice(s2 Set[T]) (added, removed, remained []T)

DiffSlice returns s vary of s2, return added, removed, remained slices with the given s2 set. For example: s1 = {a1, a3, a5, a7} s2 = {a3, a4, a5, a6} added = {a4, a6} removed = {a1, a7} remained = {a3, a6}

func (Set[T]) VarySlice added in v1.4.2

func (s Set[T]) VarySlice(s2 Set[T]) (added, removed []T)

VarySlice returns s vary of s2, return added, removed slices with the given s2 set. For example: s1 = {a1, a3, a5, a7} s2 = {a3, a4, a5, a6} added = {a4, a6} removed = {a1, a7}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL