ds

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Mar 12, 2024 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Array

type Array[T comparable] struct {
	// contains filtered or unexported fields
}

Array 无序数组

func NewArray

func NewArray[T comparable](defCap int) *Array[T]

func (*Array) Add

func (a *Array) Add(item T)

func (*Array) AddRange

func (a *Array) AddRange(items ...T)

func (*Array) Clear

func (a *Array) Clear()

func (*Array) Count

func (a *Array) Count() int

func (*Array[T]) Del

func (a *Array[T]) Del(v T) (exist bool)

func (*Array) HasItem

func (a *Array) HasItem(item T) bool

func (*Array) Reset

func (a *Array) Reset()

func (*Array) Values

func (a *Array) Values() []T

type DLinkOption

type DLinkOption[KT comparable, VT any] func(o *setLinkOption[KT, VT])

func SetLinkRecycleElem

func SetLinkRecycleElem[KT comparable, VT any](recycle func(*SetLinkElem[VT])) DLinkOption[KT, VT]

func SetLinkSpawnElem

func SetLinkSpawnElem[KT comparable, VT any](spawn func() *SetLinkElem[VT]) DLinkOption[KT, VT]

func SetLinkValToKey

func SetLinkValToKey[KT comparable, VT any](valToKey func(VT) KT) DLinkOption[KT, VT]
type FnErrLink struct {
	*Link[func() *util.Err]
}
func NewFnErrLink() *FnErrLink

func (*FnErrLink) Del

func (l *FnErrLink) Del(fn func() *util.Err)

func (*FnErrLink) Invoke

func (l *FnErrLink) Invoke() *util.Err

func (*FnErrLink) Reset

func (l *FnErrLink) Reset()

type FnErrLink1

type FnErrLink1[T any] struct {
	*Link[func(T) *util.Err]
}

func NewFnErrLink1

func NewFnErrLink1[T any]() *FnErrLink1[T]

func (*FnErrLink1[T]) Del

func (l *FnErrLink1[T]) Del(fn func(T) *util.Err)

func (*FnErrLink1[T]) Invoke

func (l *FnErrLink1[T]) Invoke(obj T) *util.Err

func (*FnErrLink1[T]) Reset

func (l *FnErrLink1[T]) Reset()

type FnErrLink2

type FnErrLink2[T0, T1 any] struct {
	*Link[func(T0, T1) *util.Err]
}

func NewFnErrLink2

func NewFnErrLink2[T0, T1 any]() *FnErrLink2[T0, T1]

func (*FnErrLink2[T0, T1]) Del

func (l *FnErrLink2[T0, T1]) Del(fn func(T0, T1) *util.Err)

func (*FnErrLink2[T0, T1]) Invoke

func (l *FnErrLink2[T0, T1]) Invoke(v0 T0, v1 T1) *util.Err

func (*FnErrLink2[T0, T1]) Reset

func (l *FnErrLink2[T0, T1]) Reset()

type FnErrLink3

type FnErrLink3[T0, T1, T2 any] struct {
	*Link[func(T0, T1, T2) *util.Err]
}

func NewFnErrLink3

func NewFnErrLink3[T0, T1, T2 any]() *FnErrLink3[T0, T1, T2]

func (*FnErrLink3[T0, T1, T2]) Del

func (l *FnErrLink3[T0, T1, T2]) Del(fn func(T0, T1, T2) *util.Err)

func (*FnErrLink3[T0, T1, T2]) Invoke

func (l *FnErrLink3[T0, T1, T2]) Invoke(v0 T0, v1 T1, v2 T2) *util.Err

func (*FnErrLink3[T0, T1, T2]) Reset

func (l *FnErrLink3[T0, T1, T2]) Reset()

type FnErrLink4

type FnErrLink4[T0, T1, T2, T3 any] struct {
	*Link[func(T0, T1, T2, T3) *util.Err]
}

func NewFnErrLink4

func NewFnErrLink4[T0, T1, T2, T3 any]() *FnErrLink4[T0, T1, T2, T3]

func (*FnErrLink4[T0, T1, T2, T3]) Del

func (l *FnErrLink4[T0, T1, T2, T3]) Del(fn func(T0, T1, T2, T3) *util.Err)

func (*FnErrLink4[T0, T1, T2, T3]) Invoke

func (l *FnErrLink4[T0, T1, T2, T3]) Invoke(v0 T0, v1 T1, v2 T2, v3 T3) *util.Err

func (*FnErrLink4[T0, T1, T2, T3]) Reset

func (l *FnErrLink4[T0, T1, T2, T3]) Reset()

type FnErrLink5

type FnErrLink5[T0, T1, T2, T3, T4 any] struct {
	*Link[func(T0, T1, T2, T3, T4) *util.Err]
}

func NewFnErrLink5

func NewFnErrLink5[T0, T1, T2, T3, T4 any]() *FnErrLink5[T0, T1, T2, T3, T4]

func (*FnErrLink5[T0, T1, T2, T3, T4]) Del

func (l *FnErrLink5[T0, T1, T2, T3, T4]) Del(fn func(T0, T1, T2, T3, T4) *util.Err)

func (*FnErrLink5[T0, T1, T2, T3, T4]) Invoke

func (l *FnErrLink5[T0, T1, T2, T3, T4]) Invoke(v0 T0, v1 T1, v2 T2, v3 T3, v4 T4) *util.Err

func (*FnErrLink5[T0, T1, T2, T3, T4]) Reset

func (l *FnErrLink5[T0, T1, T2, T3, T4]) Reset()

type FnErrLink6

type FnErrLink6[T0, T1, T2, T3, T4, T5 any] struct {
	*Link[func(T0, T1, T2, T3, T4, T5) *util.Err]
}

func NewFnErrLink6

func NewFnErrLink6[T0, T1, T2, T3, T4, T5 any]() *FnErrLink6[T0, T1, T2, T3, T4, T5]

func (*FnErrLink6[T0, T1, T2, T3, T4, T5]) Del

func (l *FnErrLink6[T0, T1, T2, T3, T4, T5]) Del(fn func(T0, T1, T2, T3, T4, T5) *util.Err)

func (*FnErrLink6[T0, T1, T2, T3, T4, T5]) Invoke

func (l *FnErrLink6[T0, T1, T2, T3, T4, T5]) Invoke(v0 T0, v1 T1, v2 T2, v3 T3, v4 T4, v5 T5) *util.Err

func (*FnErrLink6[T0, T1, T2, T3, T4, T5]) Reset

func (l *FnErrLink6[T0, T1, T2, T3, T4, T5]) Reset()
type FnLink struct {
	*Link[util.Fn]
}
func NewFnLink() *FnLink

func (*FnLink) Del

func (l *FnLink) Del(fn util.Fn)

func (*FnLink) Dispose

func (l *FnLink) Dispose()

func (*FnLink) Invoke

func (l *FnLink) Invoke() bool

func (*FnLink) InvokeAndReset

func (l *FnLink) InvokeAndReset() bool

func (*FnLink) Reset

func (l *FnLink) Reset()

type FnLink1

type FnLink1[T any] struct {
	*Link[func(T)]
}

func NewFnLink1

func NewFnLink1[T any]() *FnLink1[T]

func (*FnLink1[T]) Del

func (l *FnLink1[T]) Del(fn func(T))

func (*FnLink1[T]) Invoke

func (l *FnLink1[T]) Invoke(obj T)

func (*FnLink1[T]) Reset

func (l *FnLink1[T]) Reset()

type FnLink2

type FnLink2[T0, T1 any] struct {
	*Link[func(T0, T1)]
}

func NewFnLink2

func NewFnLink2[T0, T1 any]() *FnLink2[T0, T1]

func (*FnLink2[T0, T1]) Del

func (l *FnLink2[T0, T1]) Del(fn func(T0, T1))

func (*FnLink2[T0, T1]) Invoke

func (l *FnLink2[T0, T1]) Invoke(v0 T0, v1 T1)

func (*FnLink2[T0, T1]) Reset

func (l *FnLink2[T0, T1]) Reset()

type FnLink3

type FnLink3[T0, T1, T2 any] struct {
	*Link[func(T0, T1, T2)]
}

func NewFnLink3

func NewFnLink3[T0, T1, T2 any]() *FnLink3[T0, T1, T2]

func (*FnLink3[T0, T1, T2]) Del

func (l *FnLink3[T0, T1, T2]) Del(fn func(T0, T1, T2))

func (*FnLink3[T0, T1, T2]) Invoke

func (l *FnLink3[T0, T1, T2]) Invoke(v0 T0, v1 T1, v2 T2)

func (*FnLink3[T0, T1, T2]) Reset

func (l *FnLink3[T0, T1, T2]) Reset()

type FnLink4

type FnLink4[T0, T1, T2, T3 any] struct {
	*Link[func(T0, T1, T2, T3)]
}

func NewFnLink4

func NewFnLink4[T0, T1, T2, T3 any]() *FnLink4[T0, T1, T2, T3]

func (*FnLink4[T0, T1, T2, T3]) Del

func (l *FnLink4[T0, T1, T2, T3]) Del(fn func(T0, T1, T2, T3))

func (*FnLink4[T0, T1, T2, T3]) Invoke

func (l *FnLink4[T0, T1, T2, T3]) Invoke(v0 T0, v1 T1, v2 T2, v3 T3)

func (*FnLink4[T0, T1, T2, T3]) Reset

func (l *FnLink4[T0, T1, T2, T3]) Reset()

type FnLink5

type FnLink5[T0, T1, T2, T3, T4 any] struct {
	*Link[func(T0, T1, T2, T3, T4)]
}

func NewFnLink5

func NewFnLink5[T0, T1, T2, T3, T4 any]() *FnLink5[T0, T1, T2, T3, T4]

func (*FnLink5[T0, T1, T2, T3, T4]) Del

func (l *FnLink5[T0, T1, T2, T3, T4]) Del(fn func(T0, T1, T2, T3, T4))

func (*FnLink5[T0, T1, T2, T3, T4]) Invoke

func (l *FnLink5[T0, T1, T2, T3, T4]) Invoke(v0 T0, v1 T1, v2 T2, v3 T3, v4 T4)

func (*FnLink5[T0, T1, T2, T3, T4]) Reset

func (l *FnLink5[T0, T1, T2, T3, T4]) Reset()

type FnLink6

type FnLink6[T0, T1, T2, T3, T4, T5 any] struct {
	*Link[func(T0, T1, T2, T3, T4, T5)]
}

func NewFnLink6

func NewFnLink6[T0, T1, T2, T3, T4, T5 any]() *FnLink6[T0, T1, T2, T3, T4, T5]

func (*FnLink6[T0, T1, T2, T3, T4, T5]) Del

func (l *FnLink6[T0, T1, T2, T3, T4, T5]) Del(fn func(T0, T1, T2, T3, T4, T5))

func (*FnLink6[T0, T1, T2, T3, T4, T5]) Invoke

func (l *FnLink6[T0, T1, T2, T3, T4, T5]) Invoke(v0 T0, v1 T1, v2 T2, v3 T3, v4 T4, v5 T5)

func (*FnLink6[T0, T1, T2, T3, T4, T5]) Reset

func (l *FnLink6[T0, T1, T2, T3, T4, T5]) Reset()
type IdLink[KT comparable, VT any] struct {
	Link[VT]
	// contains filtered or unexported fields
}
func NewIdLink[KT comparable, VT any]() *IdLink[KT, VT]

func (*IdLink[KT, VT]) Id

func (q *IdLink[KT, VT]) Id() KT

func (*IdLink[KT, VT]) PopAll

func (q *IdLink[KT, VT]) PopAll() *LinkElem[VT]

func (*IdLink[KT, VT]) Push

func (q *IdLink[KT, VT]) Push(val VT)

func (*IdLink[KT, VT]) SetId

func (q *IdLink[KT, VT]) SetId(id KT)

type KSet

type KSet[KT comparable, VT any] struct {
	// contains filtered or unexported fields
}

func NewKSet

func NewKSet[KT comparable, VT any](defCap int, getKey func(VT) KT) *KSet[KT, VT]

func NewSet

func NewSet[KT comparable, VT any](defCap int) *KSet[KT, *SetItem[KT, VT]]

func (*KSet[KT, VT]) Add

func (s *KSet[KT, VT]) Add(item VT) *util.Err

func (*KSet[KT, VT]) AddNX

func (s *KSet[KT, VT]) AddNX(item VT) bool

func (*KSet[KT, VT]) AddNX2

func (s *KSet[KT, VT]) AddNX2(key KT, new func() VT) bool

func (*KSet[KT, VT]) Any

func (s *KSet[KT, VT]) Any(fn func(VT) bool) bool

func (*KSet[KT, VT]) Cap

func (s *KSet[KT, VT]) Cap() int

func (*KSet[KT, VT]) CopyKeys

func (s *KSet[KT, VT]) CopyKeys(keys *[]KT)

func (*KSet[KT, VT]) CopyValues

func (s *KSet[KT, VT]) CopyValues(values *[]VT)

func (*KSet[KT, VT]) Count

func (s *KSet[KT, VT]) Count() int

func (*KSet[KT, VT]) Del

func (s *KSet[KT, VT]) Del(k KT) (val VT, exist bool)

func (*KSet[KT, VT]) Get

func (s *KSet[KT, VT]) Get(key KT) (VT, bool)

func (*KSet[KT, VT]) GetOrNew

func (s *KSet[KT, VT]) GetOrNew(key KT, new func() VT) (VT, bool)

func (*KSet[KT, VT]) GetWithIdx

func (s *KSet[KT, VT]) GetWithIdx(idx int) (VT, bool)

func (*KSet[KT, VT]) Has

func (s *KSet[KT, VT]) Has(key KT) bool

func (*KSet[KT, VT]) Iter

func (s *KSet[KT, VT]) Iter(fn func(VT))

func (*KSet[KT, VT]) ReplaceOrNew

func (s *KSet[KT, VT]) ReplaceOrNew(oldKey KT, newItem VT) bool

func (*KSet[KT, VT]) Reset

func (s *KSet[KT, VT]) Reset()

func (*KSet[KT, VT]) Set

func (s *KSet[KT, VT]) Set(item VT) (old VT)

func (*KSet[KT, VT]) TestDel

func (s *KSet[KT, VT]) TestDel(test func(KT, VT) (del bool, brk bool))

func (*KSet[KT, VT]) Values

func (s *KSet[KT, VT]) Values() []VT

type KSet2

type KSet2[KT1, KT2 comparable, VT any] struct {
	*KSet[KT1, *Set2Item[KT1, KT2, VT]]
	// contains filtered or unexported fields
}

func NewKSet2

func NewKSet2[KT1, KT2 comparable, VT any](defCap int, getKey func(VT) KT2) *KSet2[KT1, KT2, VT]

func (*KSet2[KT1, KT2, VT]) ReplaceKey

func (s *KSet2[KT1, KT2, VT]) ReplaceKey(old, new KT1) bool
type Link[T any] struct {
	// contains filtered or unexported fields
}
func NewLink[T any]() *Link[T]

func (*Link[T]) Any

func (l *Link[T]) Any(fn func(T) bool) bool

func (*Link[T]) Copy

func (l *Link[T]) Copy(lnk *Link[T])

func (*Link[T]) Count

func (l *Link[T]) Count() uint32

func (*Link[T]) Del

func (l *Link[T]) Del(fn func(T) bool) bool

func (*Link[T]) Dispose

func (l *Link[T]) Dispose()

func (*Link[T]) Head

func (l *Link[T]) Head() (T, bool)

func (*Link[T]) Insert

func (l *Link[T]) Insert(a T, fn func(T) bool)

func (*Link[T]) Iter

func (l *Link[T]) Iter(fn func(T))

func (*Link[T]) Pop

func (l *Link[T]) Pop() (T, bool)

func (*Link[T]) PopAll

func (l *Link[T]) PopAll() *LinkElem[T]

func (*Link[T]) Push

func (l *Link[T]) Push(a T)
func (l *Link[T]) PushLink(lnk *Link[T])

func (*Link[T]) Tail

func (l *Link[T]) Tail() (T, bool)

func (*Link[T]) Values

func (l *Link[T]) Values(values *[]T) bool

type Link2

type Link2[T comparable] struct {
	// contains filtered or unexported fields
}

func NewLink2

func NewLink2[T comparable]() *Link2[T]

func (*Link2[T]) Count

func (l *Link2[T]) Count() uint32

func (*Link2[T]) Del

func (l *Link2[T]) Del(item T) bool

func (*Link2[T]) Iter

func (l *Link2[T]) Iter(fn func([]T))

func (*Link2[T]) IterAndReset

func (l *Link2[T]) IterAndReset(fn func([]T))

func (*Link2[T]) Push

func (l *Link2[T]) Push(item T)

func (*Link2[T]) Reset

func (l *Link2[T]) Reset()

type LinkElem

type LinkElem[T any] struct {
	Next  *LinkElem[T]
	Value T
}

type List

type List[T comparable] struct {
	// contains filtered or unexported fields
}

List 有序数组

func NewList

func NewList[T comparable](defCap int) *List[T]

func (*List) Add

func (a *List) Add(item T)

func (*List) AddRange

func (a *List) AddRange(items ...T)

func (*List) Clear

func (a *List) Clear()

func (*List) Count

func (a *List) Count() int

func (*List[T]) Del

func (l *List[T]) Del(v T) (exist bool)

func (*List) HasItem

func (a *List) HasItem(item T) bool

func (*List) Reset

func (a *List) Reset()

func (*List) Values

func (a *List) Values() []T

type RBTree

type RBTree[KT comparable, VT any] struct {
	// contains filtered or unexported fields
}

func NewRBTree

func NewRBTree[KT comparable, VT any](compare util.Compare[KT]) *RBTree[KT, VT]

func NewRBTreeFromM

func NewRBTreeFromM[KT comparable, VT any](m map[KT]VT, compare util.Compare[KT]) *RBTree[KT, VT]

func (*RBTree[KT, VT]) AnyAsc

func (t *RBTree[KT, VT]) AnyAsc(fn func(KT, VT) bool) bool

func (*RBTree[KT, VT]) AnyAscFrom

func (t *RBTree[KT, VT]) AnyAscFrom(k KT, fn func(KT, VT) bool) (match bool, ok bool)

func (*RBTree[KT, VT]) AnyDesc

func (t *RBTree[KT, VT]) AnyDesc(fn func(KT, VT) bool) bool

func (*RBTree[KT, VT]) AnyDescFrom

func (t *RBTree[KT, VT]) AnyDescFrom(k KT, fn func(KT, VT) bool) (match bool, ok bool)

func (*RBTree[KT, VT]) Del

func (t *RBTree[KT, VT]) Del(key KT) (value VT)

func (*RBTree[KT, VT]) Get

func (t *RBTree[KT, VT]) Get(k KT) (VT, bool)

func (*RBTree[KT, VT]) M

func (t *RBTree[KT, VT]) M() map[KT]VT

func (*RBTree[KT, VT]) Reset

func (t *RBTree[KT, VT]) Reset()

func (*RBTree[KT, VT]) Set

func (t *RBTree[KT, VT]) Set(k KT, v VT)

func (*RBTree[KT, VT]) Update

func (t *RBTree[KT, VT]) Update(m map[KT]VT)

type RBTreeNode

type RBTreeNode[KT comparable, VT any] struct {
	Key   KT
	Value VT
	// contains filtered or unexported fields
}

type Ring

type Ring[T any] struct {
	// contains filtered or unexported fields
}

func NewRing

func NewRing[T any](opts ...RingOption[T]) *Ring[T]

func (*Ring[T]) Available

func (r *Ring[T]) Available() uint32

func (*Ring[T]) Iter

func (r *Ring[T]) Iter(fn func([]T))

func (*Ring[T]) IterAll

func (r *Ring[T]) IterAll(fn func(T))

func (*Ring[T]) Pop

func (r *Ring[T]) Pop() (item T, err *util.Err)

func (*Ring[T]) Put

func (r *Ring[T]) Put(items ...T) *util.Err

func (*Ring[T]) Read

func (r *Ring[T]) Read(s []T, l uint32) *util.Err

func (*Ring[T]) ReadMax

func (r *Ring[T]) ReadMax(s []T) uint32

func (*Ring[T]) Reset

func (r *Ring[T]) Reset()

type RingOption

type RingOption[T any] func(o *ringOption[T])

func RingMaxCap

func RingMaxCap[T any](c uint32) RingOption[T]

func RingMinCap

func RingMinCap[T any](c uint32) RingOption[T]

func RingResize

func RingResize[T any](r func(uint32)) RingOption[T]

type Set2Item

type Set2Item[KT1, KT2 comparable, VT any] struct {
	*KSet[KT2, VT]
	// contains filtered or unexported fields
}

func NewSet2Item

func NewSet2Item[KT1, KT2 comparable, VT any](key KT1, defCap int, getKey func(VT) KT2) *Set2Item[KT1, KT2, VT]

func (*Set2Item[KT1, KT2, VT]) Key

func (s *Set2Item[KT1, KT2, VT]) Key() KT1

type SetItem

type SetItem[KT comparable, VT any] struct {
	*KSet[KT, VT]
	// contains filtered or unexported fields
}

func NewSetItem

func NewSetItem[KT comparable, VT any](defCap int, key KT, getKey func(VT) KT) *SetItem[KT, VT]

func (*SetItem[KT, VT]) ResetKey

func (s *SetItem[KT, VT]) ResetKey(key KT)
type SetLink[KT comparable, VT any] struct {
	// contains filtered or unexported fields
}

SetLink 元素唯一双向链表

func NewSetLink[KT comparable, VT any](cap int, opts ...DLinkOption[KT, VT]) *SetLink[KT, VT]

func (*SetLink[KT, VT]) Any

func (l *SetLink[KT, VT]) Any(fn func(VT) bool) bool

func (*SetLink[KT, VT]) Count

func (l *SetLink[KT, VT]) Count() int

func (*SetLink[KT, VT]) Del

func (l *SetLink[KT, VT]) Del(test func(VT) bool) (VT, bool)

Del 测试弹出一个符合条件的即停止

func (*SetLink[KT, VT]) Get

func (l *SetLink[KT, VT]) Get(key KT) (VT, bool)

func (*SetLink[KT, VT]) Iter

func (l *SetLink[KT, VT]) Iter(fn func(VT))

func (*SetLink[KT, VT]) NewOrUpdate

func (l *SetLink[KT, VT]) NewOrUpdate(key KT, update func(VT), new func() VT) (exist bool)

func (*SetLink[KT, VT]) Pop

func (l *SetLink[KT, VT]) Pop() (VT, bool)

func (*SetLink[KT, VT]) Push

func (l *SetLink[KT, VT]) Push(val VT) bool

Push 推入元素,如果已存在返回false

func (*SetLink[KT, VT]) Remove

func (l *SetLink[KT, VT]) Remove(val VT)

func (*SetLink[KT, VT]) RemoveByKey

func (l *SetLink[KT, VT]) RemoveByKey(key KT)

func (*SetLink[KT, VT]) Values

func (l *SetLink[KT, VT]) Values() []VT

type SetLinkElem

type SetLinkElem[T any] struct {
	Value T
	// contains filtered or unexported fields
}

func (*SetLinkElem[T]) Dispose

func (n *SetLinkElem[T]) Dispose()

Jump to

Keyboard shortcuts

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