Documentation ¶
Overview ¶
*Copyright (c) 2022, kaydxh * *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.
*Copyright (c) 2022, kaydxh * *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.
*Copyright (c) 2022, kaydxh * *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.
Index ¶
- type Empty
- type Lesser
- type LesserT
- type Object
- func (s Object) Delete(items ...interface{}) Object
- func (s Object) Difference(s2 Object) Object
- func (s1 Object) Equal(s2 Object) bool
- func (s Object) Has(item interface{}) bool
- func (s Object) HasAll(items ...interface{}) bool
- func (s Object) HasAny(items ...interface{}) bool
- func (s Object) Insert(items ...interface{}) Object
- func (s1 Object) Intersection(s2 Object) Object
- func (s1 Object) IsSuperset(s2 Object) bool
- func (s Object) Len() int
- func (s Object) List() []interface{}
- func (s Object) PopAny() (interface{}, bool)
- func (s1 Object) Union(s2 Object) Object
- func (s Object) UnsortedList() []interface{}
- type Set
- func (s Set[T]) Delete(items ...T) Set[T]
- func (s Set[T]) Difference(s2 Set[T]) Set[T]
- func (s1 Set[T]) Equal(s2 Set[T]) bool
- func (s Set[T]) Has(item T) bool
- func (s Set[T]) HasAll(items ...T) bool
- func (s Set[T]) HasAny(items ...T) bool
- func (s Set[T]) Insert(items ...T) Set[T]
- func (s1 Set[T]) Intersection(s2 Set[T]) Set[T]
- func (s1 Set[T]) IsSuperset(s2 Set[T]) bool
- func (s Set[T]) Len() int
- func (s Set[T]) List() []T
- func (s Set[T]) PopAny() (T, bool)
- func (s1 Set[T]) Union(s2 Set[T]) Set[T]
- func (s Set[T]) UnsortedList() []T
- type String
- func (s String) Delete(items ...string) String
- func (s String) Difference(s2 String) String
- func (s1 String) Equal(s2 String) bool
- func (s String) Has(item string) bool
- func (s String) HasAll(items ...string) bool
- func (s String) HasAny(items ...string) bool
- func (s String) Insert(items ...string) String
- func (s1 String) Intersection(s2 String) String
- func (s1 String) IsSuperset(s2 String) bool
- func (s String) Len() int
- func (s String) List() []string
- func (s String) PopAny() (string, bool)
- func (s1 String) Union(s2 String) String
- func (s String) UnsortedList() []string
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type LesserT ¶ added in v0.0.103
type LesserT[T comparable] interface { Less(a, b T) bool }
type Object ¶
type Object map[interface{}]Empty
sets.Object is a set of Objects, implemented via map[Object]struct{} for minimal memory consumption.
func KeySet ¶
func KeySet(theMap interface{}) Object
ObjectKeySet creates a Object from a keys of a map[Object](? extends interface{}). If the value passed in is not actually a map, this will panic.
func NewObject ¶
func NewObject(items ...interface{}) Object
NewObject creates a Object from a list of values.
func (Object) Difference ¶
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 (Object) Equal ¶
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 (Object) Intersection ¶
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 (Object) IsSuperset ¶
IsSuperset returns true if and only if s1 is a superset of s2.
func (Object) List ¶
func (s Object) List() []interface{}
List returns the contents as a sorted Object slice.
func (Object) Union ¶
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 (Object) UnsortedList ¶
func (s Object) UnsortedList() []interface{}
UnsortedList returns the slice with contents in random order.
type Set ¶ added in v0.0.103
type Set[T comparable] map[T]Empty
type Set[type T comparable] map[T]Empty
func New ¶ added in v0.0.103
func New[T comparable](items ...T) Set[T]
func (Set[T]) Difference ¶ added in v0.0.103
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]) Equal ¶ added in v0.0.103
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]) HasAll ¶ added in v0.0.103
HasAll returns true if and only if all items are contained in the set.
func (Set[T]) Intersection ¶ added in v0.0.103
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]) IsSuperset ¶ added in v0.0.103
IsSuperset returns true if and only if s1 is a superset of s2.
func (Set[T]) List ¶ added in v0.0.103
func (s Set[T]) List() []T
List returns the contents as a sorted Object slice.
func (Set[T]) Union ¶ added in v0.0.103
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]) UnsortedList ¶ added in v0.0.103
func (s Set[T]) UnsortedList() []T
UnsortedList returns the slice with contents in random order.
type String ¶
sets.String is a set of strings, implemented via map[string]struct{} for minimal memory consumption.
func StringKeySet ¶
func StringKeySet(theMap interface{}) String
StringKeySet creates a String from a keys of a map[string](? extends interface{}). If the value passed in is not actually a map, this will panic.
func (String) Difference ¶
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 (String) Equal ¶
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 (String) Intersection ¶
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 (String) IsSuperset ¶
IsSuperset returns true if and only if s1 is a superset of s2.
func (String) Union ¶
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 (String) UnsortedList ¶
UnsortedList returns the slice with contents in random order.