mappings

package
v0.6.1 Latest Latest
Warning

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

Go to latest
Published: Aug 17, 2024 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Bucket added in v0.6.0

type Bucket[K constraints.Hash, V any] struct {
	// contains filtered or unexported fields
}

Bucket 并发安全的基于哈希桶实现的字典结构

func NewBucket added in v0.6.0

func NewBucket[K constraints.Hash, V any](bucketSize int, hashFunc HashFunc[K]) *Bucket[K, V]

func NewStringBucket added in v0.6.0

func NewStringBucket[V any](bucketSize int) *Bucket[string, V]

func (*Bucket[K, V]) Clear added in v0.6.0

func (b *Bucket[K, V]) Clear()

func (*Bucket[K, V]) Del added in v0.6.0

func (b *Bucket[K, V]) Del(key K)

func (*Bucket[K, V]) Get added in v0.6.0

func (b *Bucket[K, V]) Get(key K) (V, bool)

func (*Bucket[K, V]) GetBucket added in v0.6.0

func (b *Bucket[K, V]) GetBucket(key K) *haxmap.Map[K, V]

func (*Bucket[K, V]) Len added in v0.6.0

func (b *Bucket[K, V]) Len() int

func (*Bucket[K, V]) Set added in v0.6.0

func (b *Bucket[K, V]) Set(key K, value V)

type HashFunc added in v0.6.0

type HashFunc[K constraints.Hash] func(size int, key K) int

type MutexBucket added in v0.6.0

type MutexBucket[K constraints.Hash, V any] struct {
	// contains filtered or unexported fields
}

MutexBucket 基于 sync 包实现的并发安全的哈希桶

func NewMutexBucket added in v0.6.0

func NewMutexBucket[K constraints.Hash, V any](bucketSize int, hashFunc HashFunc[K]) *MutexBucket[K, V]

func (*MutexBucket[K, V]) Clear added in v0.6.0

func (b *MutexBucket[K, V]) Clear()

func (*MutexBucket[K, V]) Del added in v0.6.0

func (b *MutexBucket[K, V]) Del(key K)

func (*MutexBucket[K, V]) Get added in v0.6.0

func (b *MutexBucket[K, V]) Get(key K) (V, bool)

func (*MutexBucket[K, V]) GetBucket added in v0.6.0

func (b *MutexBucket[K, V]) GetBucket(key K) *MutexBucketItem[K, V]

func (*MutexBucket[K, V]) Len added in v0.6.0

func (b *MutexBucket[K, V]) Len() int

func (*MutexBucket[K, V]) Set added in v0.6.0

func (b *MutexBucket[K, V]) Set(key K, value V)

type MutexBucketItem added in v0.6.0

type MutexBucketItem[K constraints.Hash, V any] struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func (*MutexBucketItem[K, V]) Get added in v0.6.0

func (i *MutexBucketItem[K, V]) Get(key K) (value V, exists bool)

func (*MutexBucketItem[K, V]) GetAndDel added in v0.6.0

func (i *MutexBucketItem[K, V]) GetAndDel(key K) (value V, exists bool)

func (*MutexBucketItem[K, V]) GetOrSet added in v0.6.0

func (i *MutexBucketItem[K, V]) GetOrSet(key K, val V) (value V, exists bool)

func (*MutexBucketItem[K, V]) NoneLockGetAndDel added in v0.6.0

func (i *MutexBucketItem[K, V]) NoneLockGetAndDel(key K) (value V, exists bool)

type Order added in v0.6.0

type Order[K constraints.Hash, V any] struct {
	// contains filtered or unexported fields
}

func NewOrder added in v0.6.0

func NewOrder[K constraints.Hash, V any]() *Order[K, V]

func (*Order[K, V]) Add added in v0.6.0

func (o *Order[K, V]) Add(key K, value V)

Add 添加元素

func (*Order[K, V]) Del added in v0.6.0

func (o *Order[K, V]) Del(key K)

Del 删除指定 key 的元素

func (*Order[K, V]) Get added in v0.6.0

func (o *Order[K, V]) Get(key K) (value V, exists bool)

Get 获取指定 key 的元素

func (*Order[K, V]) Len added in v0.6.0

func (o *Order[K, V]) Len() int

Len 返回元素数量

func (*Order[K, V]) Range added in v0.6.0

func (o *Order[K, V]) Range(handle func(key K, value V) bool)

Range 遍历所有元素,如果 handle 返回 false,则停止遍历

func (*Order[K, V]) Set added in v0.6.0

func (o *Order[K, V]) Set(key K, value V)

Set 设置指定 key 的元素

type OrderInterface added in v0.6.0

type OrderInterface[K constraints.Hash, V any] interface {
	Get(key K) (value V, exists bool)

	Add(key K, value V)

	Set(key K, value V)

	Len() int

	Del(key K)

	Range(handle func(key K, value V) bool)
}

type OrderSync added in v0.6.0

type OrderSync[K constraints.Hash, V any] struct {
	// contains filtered or unexported fields
}

func NewOrderSync added in v0.6.0

func NewOrderSync[K constraints.Hash, V any]() *OrderSync[K, V]

func (*OrderSync[K, V]) Add added in v0.6.0

func (o *OrderSync[K, V]) Add(key K, value V)

Add 添加元素

func (*OrderSync[K, V]) Del added in v0.6.0

func (o *OrderSync[K, V]) Del(key K)

Del 删除指定 key 的元素

func (*OrderSync[K, V]) Get added in v0.6.0

func (o *OrderSync[K, V]) Get(key K) (value V, exists bool)

Get 获取指定 key 的元素

func (*OrderSync[K, V]) Len added in v0.6.0

func (o *OrderSync[K, V]) Len() int

Len 返回元素数量

func (*OrderSync[K, V]) Range added in v0.6.0

func (o *OrderSync[K, V]) Range(handle func(key K, value V) bool)

Range 遍历所有元素,如果 handle 返回 false,则停止遍历

func (*OrderSync[K, V]) Set added in v0.6.0

func (o *OrderSync[K, V]) Set(key K, value V)

Set 设置指定 key 的元素

type SyncMap

type SyncMap[K comparable, V any] struct {
	// contains filtered or unexported fields
}

SyncMap 是基于 sync.RWMutex 实现的线程安全的 map

  • 适用于要考虑并发读写但是并发读写的频率不高的情况

func NewSyncMap

func NewSyncMap[K comparable, V any](source ...map[K]V) *SyncMap[K, V]

NewSyncMap 创建一个 SyncMap

func (*SyncMap[K, V]) Atom

func (sm *SyncMap[K, V]) Atom(handle func(m map[K]V))

Atom 原子操作

func (*SyncMap[K, V]) Clear

func (sm *SyncMap[K, V]) Clear()

Clear 清空

func (*SyncMap[K, V]) ClearHandle

func (sm *SyncMap[K, V]) ClearHandle(handle func(key K, value V))

ClearHandle 清空并处理

func (*SyncMap[K, V]) Delete

func (sm *SyncMap[K, V]) Delete(key K)

Delete 删除一个值

func (*SyncMap[K, V]) DeleteExist

func (sm *SyncMap[K, V]) DeleteExist(key K) bool

DeleteExist 删除一个值并返回是否存在

func (*SyncMap[K, V]) DeleteGet

func (sm *SyncMap[K, V]) DeleteGet(key K) V

DeleteGet 删除一个值并返回

func (*SyncMap[K, V]) DeleteGetExist

func (sm *SyncMap[K, V]) DeleteGetExist(key K) (V, bool)

DeleteGetExist 删除一个值并返回是否存在

func (*SyncMap[K, V]) Exist

func (sm *SyncMap[K, V]) Exist(key K) bool

Exist 判断是否存在

func (*SyncMap[K, V]) Get

func (sm *SyncMap[K, V]) Get(key K) V

Get 获取一个值

func (*SyncMap[K, V]) GetExist

func (sm *SyncMap[K, V]) GetExist(key K) (V, bool)

GetExist 获取一个值并判断是否存在

func (*SyncMap[K, V]) Keys

func (sm *SyncMap[K, V]) Keys() []K

Keys 获取所有的键

func (*SyncMap[K, V]) Map

func (sm *SyncMap[K, V]) Map() map[K]V

Map 转换为普通 map

func (*SyncMap[K, V]) MarshalJSON

func (sm *SyncMap[K, V]) MarshalJSON() ([]byte, error)

func (*SyncMap[K, V]) Range

func (sm *SyncMap[K, V]) Range(handle func(key K, value V) bool)

Range 遍历所有值,如果 handle 返回 true 则停止遍历

func (*SyncMap[K, V]) Set

func (sm *SyncMap[K, V]) Set(key K, value V)

Set 设置一个值

func (*SyncMap[K, V]) Size

func (sm *SyncMap[K, V]) Size() int

Size 获取数量

func (*SyncMap[K, V]) Slice

func (sm *SyncMap[K, V]) Slice() []V

Slice 获取所有的值

func (*SyncMap[K, V]) UnmarshalJSON

func (sm *SyncMap[K, V]) UnmarshalJSON(bytes []byte) error

Jump to

Keyboard shortcuts

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