gset

package
v1.8.3 Latest Latest
Warning

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

Go to latest
Published: Jul 28, 2019 License: MIT Imports: 3 Imported by: 0

Documentation

Overview

Package gset provides kinds of concurrent-safe/unsafe sets.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type IntSet

type IntSet struct {
	// contains filtered or unexported fields
}

func NewIntSet

func NewIntSet(unsafe ...bool) *IntSet

New create and returns a new set, which contains un-repeated items. The parameter <unsafe> used to specify whether using set in un-concurrent-safety, which is false in default.

func NewIntSetFrom

func NewIntSetFrom(items []int, unsafe ...bool) *IntSet

NewIntSetFrom returns a new set from <items>.

func (*IntSet) Add

func (set *IntSet) Add(item ...int) *IntSet

Add adds one or multiple items to the set.

func (*IntSet) Clear

func (set *IntSet) Clear() *IntSet

Clear deletes all items of the set.

func (*IntSet) Complement

func (set *IntSet) Complement(full *IntSet) (newSet *IntSet)

Complement returns a new set which is the complement from <set> to <full>. Which means, all the items in <newSet> are in <full> and not in <set>.

It returns the difference between <full> and <set> if the given set <full> is not the full set of <set>.

func (*IntSet) Contains

func (set *IntSet) Contains(item int) bool

Contains checks whether the set contains <item>.

func (*IntSet) Diff

func (set *IntSet) Diff(others ...*IntSet) (newSet *IntSet)

Diff returns a new set which is the difference set from <set> to <other>. Which means, all the items in <newSet> are in <set> but not in <other>.

func (*IntSet) Equal

func (set *IntSet) Equal(other *IntSet) bool

Equal checks whether the two sets equal.

func (*IntSet) Intersect

func (set *IntSet) Intersect(others ...*IntSet) (newSet *IntSet)

Intersect returns a new set which is the intersection from <set> to <other>. Which means, all the items in <newSet> are in <set> and also in <other>.

func (*IntSet) IsSubsetOf

func (set *IntSet) IsSubsetOf(other *IntSet) bool

IsSubsetOf checks whether the current set is a sub-set of <other>.

func (*IntSet) Iterator

func (set *IntSet) Iterator(f func(v int) bool) *IntSet

Iterator iterates the set with given callback function <f>, if <f> returns true then continue iterating; or false to stop.

func (*IntSet) Join

func (set *IntSet) Join(glue string) string

Join joins items with a string <glue>.

func (*IntSet) LockFunc

func (set *IntSet) LockFunc(f func(m map[int]struct{}))

LockFunc locks writing with callback function <f>.

func (*IntSet) Merge

func (set *IntSet) Merge(others ...*IntSet) *IntSet

Merge adds items from <others> sets into <set>.

func (*IntSet) Pop

func (set *IntSet) Pop(size int) int

Pops randomly pops an item from set.

func (*IntSet) Pops

func (set *IntSet) Pops(size int) []int

Pops randomly pops <size> items from set.

func (*IntSet) RLockFunc

func (set *IntSet) RLockFunc(f func(m map[int]struct{}))

RLockFunc locks reading with callback function <f>.

func (*IntSet) Remove

func (set *IntSet) Remove(item int) *IntSet

Remove deletes <item> from set.

func (*IntSet) Size

func (set *IntSet) Size() int

Size returns the size of the set.

func (*IntSet) Slice

func (set *IntSet) Slice() []int

Slice returns the a of items of the set as slice.

func (*IntSet) String

func (set *IntSet) String() string

String returns items as a string, which are joined by char ','.

func (*IntSet) Sum

func (set *IntSet) Sum() (sum int)

Sum sums items. Note: The items should be converted to int type, or you'd get a result that you unexpected.

func (*IntSet) Union

func (set *IntSet) Union(others ...*IntSet) (newSet *IntSet)

Union returns a new set which is the union of <set> and <other>. Which means, all the items in <newSet> are in <set> or in <other>.

type Set

type Set struct {
	// contains filtered or unexported fields
}

func New

func New(unsafe ...bool) *Set

New create and returns a new set, which contains un-repeated items. The parameter <unsafe> used to specify whether using set in un-concurrent-safety, which is false in default.

func NewFrom

func NewFrom(items interface{}, unsafe ...bool) *Set

NewFrom returns a new set from <items>. Parameter <items> can be either a variable of any type, or a slice.

func NewSet

func NewSet(unsafe ...bool) *Set

See New.

func (*Set) Add

func (set *Set) Add(item ...interface{}) *Set

Add adds one or multiple items to the set.

func (*Set) Clear

func (set *Set) Clear() *Set

Clear deletes all items of the set.

func (*Set) Complement

func (set *Set) Complement(full *Set) (newSet *Set)

Complement returns a new set which is the complement from <set> to <full>. Which means, all the items in <newSet> are in <full> and not in <set>.

It returns the difference between <full> and <set> if the given set <full> is not the full set of <set>.

func (*Set) Contains

func (set *Set) Contains(item interface{}) bool

Contains checks whether the set contains <item>.

func (*Set) Diff

func (set *Set) Diff(others ...*Set) (newSet *Set)

Diff returns a new set which is the difference set from <set> to <others>. Which means, all the items in <newSet> are in <set> but not in <others>.

func (*Set) Equal

func (set *Set) Equal(other *Set) bool

Equal checks whether the two sets equal.

func (*Set) Intersect

func (set *Set) Intersect(others ...*Set) (newSet *Set)

Intersect returns a new set which is the intersection from <set> to <others>. Which means, all the items in <newSet> are in <set> and also in <others>.

func (*Set) IsSubsetOf

func (set *Set) IsSubsetOf(other *Set) bool

IsSubsetOf checks whether the current set is a sub-set of <other>.

func (*Set) Iterator

func (set *Set) Iterator(f func(v interface{}) bool) *Set

Iterator iterates the set with given callback function <f>, if <f> returns true then continue iterating; or false to stop.

func (*Set) Join

func (set *Set) Join(glue string) string

Join joins items with a string <glue>.

func (*Set) LockFunc

func (set *Set) LockFunc(f func(m map[interface{}]struct{}))

LockFunc locks writing with callback function <f>.

func (*Set) Merge

func (set *Set) Merge(others ...*Set) *Set

Merge adds items from <others> sets into <set>.

func (*Set) Pop

func (set *Set) Pop(size int) interface{}

Pops randomly pops an item from set.

func (*Set) Pops

func (set *Set) Pops(size int) []interface{}

Pops randomly pops <size> items from set.

func (*Set) RLockFunc

func (set *Set) RLockFunc(f func(m map[interface{}]struct{}))

RLockFunc locks reading with callback function <f>.

func (*Set) Remove

func (set *Set) Remove(item interface{}) *Set

Remove deletes <item> from set.

func (*Set) Size

func (set *Set) Size() int

Size returns the size of the set.

func (*Set) Slice

func (set *Set) Slice() []interface{}

Slice returns the a of items of the set as slice.

func (*Set) String

func (set *Set) String() string

String returns items as a string, which are joined by char ','.

func (*Set) Sum

func (set *Set) Sum() (sum int)

Sum sums items. Note: The items should be converted to int type, or you'd get a result that you unexpected.

func (*Set) Union

func (set *Set) Union(others ...*Set) (newSet *Set)

Union returns a new set which is the union of <set> and <others>. Which means, all the items in <newSet> are in <set> or in <others>.

type StringSet

type StringSet struct {
	// contains filtered or unexported fields
}

func NewStringSet

func NewStringSet(unsafe ...bool) *StringSet

New create and returns a new set, which contains un-repeated items. The parameter <unsafe> used to specify whether using set in un-concurrent-safety, which is false in default.

func NewStringSetFrom

func NewStringSetFrom(items []string, unsafe ...bool) *StringSet

NewStringSetFrom returns a new set from <items>.

func (*StringSet) Add

func (set *StringSet) Add(item ...string) *StringSet

Add adds one or multiple items to the set.

func (*StringSet) Clear

func (set *StringSet) Clear() *StringSet

Clear deletes all items of the set.

func (*StringSet) Complement

func (set *StringSet) Complement(full *StringSet) (newSet *StringSet)

Complement returns a new set which is the complement from <set> to <full>. Which means, all the items in <newSet> are in <full> and not in <set>.

It returns the difference between <full> and <set> if the given set <full> is not the full set of <set>.

func (*StringSet) Contains

func (set *StringSet) Contains(item string) bool

Contains checks whether the set contains <item>.

func (*StringSet) Diff

func (set *StringSet) Diff(others ...*StringSet) (newSet *StringSet)

Diff returns a new set which is the difference set from <set> to <other>. Which means, all the items in <newSet> are in <set> but not in <other>.

func (*StringSet) Equal

func (set *StringSet) Equal(other *StringSet) bool

Equal checks whether the two sets equal.

func (*StringSet) Intersect

func (set *StringSet) Intersect(others ...*StringSet) (newSet *StringSet)

Intersect returns a new set which is the intersection from <set> to <other>. Which means, all the items in <newSet> are in <set> and also in <other>.

func (*StringSet) IsSubsetOf

func (set *StringSet) IsSubsetOf(other *StringSet) bool

IsSubsetOf checks whether the current set is a sub-set of <other>.

func (*StringSet) Iterator

func (set *StringSet) Iterator(f func(v string) bool) *StringSet

Iterator iterates the set with given callback function <f>, if <f> returns true then continue iterating; or false to stop.

func (*StringSet) Join

func (set *StringSet) Join(glue string) string

Join joins items with a string <glue>.

func (*StringSet) LockFunc

func (set *StringSet) LockFunc(f func(m map[string]struct{}))

LockFunc locks writing with callback function <f>.

func (*StringSet) Merge

func (set *StringSet) Merge(others ...*StringSet) *StringSet

Merge adds items from <others> sets into <set>.

func (*StringSet) Pop

func (set *StringSet) Pop(size int) string

Pops randomly pops an item from set.

func (*StringSet) Pops

func (set *StringSet) Pops(size int) []string

Pops randomly pops <size> items from set.

func (*StringSet) RLockFunc

func (set *StringSet) RLockFunc(f func(m map[string]struct{}))

RLockFunc locks reading with callback function <f>.

func (*StringSet) Remove

func (set *StringSet) Remove(item string) *StringSet

Remove deletes <item> from set.

func (*StringSet) Size

func (set *StringSet) Size() int

Size returns the size of the set.

func (*StringSet) Slice

func (set *StringSet) Slice() []string

Slice returns the a of items of the set as slice.

func (*StringSet) String

func (set *StringSet) String() string

String returns items as a string, which are joined by char ','.

func (*StringSet) Sum

func (set *StringSet) Sum() (sum int)

Sum sums items. Note: The items should be converted to int type, or you'd get a result that you unexpected.

func (*StringSet) Union

func (set *StringSet) Union(others ...*StringSet) (newSet *StringSet)

Union returns a new set which is the union of <set> and <other>. Which means, all the items in <newSet> are in <set> or in <other>.

Jump to

Keyboard shortcuts

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