Copy function

This commit is contained in:
bloeys
2022-06-10 11:30:53 +04:00
parent 97f19b3f38
commit 888f4f09b0
2 changed files with 23 additions and 1 deletions

19
nset.go
View File

@ -149,6 +149,25 @@ func (n *NSet[T]) String() string {
return b.String()
}
func (n *NSet[T]) Copy() *NSet[T] {
newSet := NewNSet[T]()
for i := 0; i < len(n.Buckets); i++ {
b := &n.Buckets[i]
newB := &newSet.Buckets[i]
newB.StorageUnitCount = b.StorageUnitCount
newB.Data = make([]StorageType, len(b.Data))
copy(newB.Data, b.Data)
}
newSet.StorageUnitCount = n.StorageUnitCount
return newSet
}
func NewNSet[T IntsIf]() *NSet[T] {
n := &NSet[T]{