utool

package
v0.2.37 Latest Latest
Warning

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

Go to latest
Published: Jul 13, 2026 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var JsonMapExpr = JsonMapExprGetter{}

Functions

func Jsonc2Json added in v0.2.29

func Jsonc2Json(jsonc []byte) []byte

func NewTimeCache

func NewTimeCache[T any](expire time.Duration, getter func() (T, error)) *timeCache[T]

func RemoveDuplicates added in v0.2.29

func RemoveDuplicates[T cmp.Ordered](elements []T) []T

func RemoveFromSlice added in v0.2.29

func RemoveFromSlice[T comparable](source []T, element ...T) []T

RemoveFromSlice 从slice中移除指定元素

func SliceToMap added in v0.2.29

func SliceToMap[T any, K comparable, V any](s []T, keyFn func(*T) K, valueFn func(*T) V) map[K]V

将slice转换为map

Types

type JsonMapExprGetter added in v0.2.29

type JsonMapExprGetter struct{}

func (JsonMapExprGetter) GetJsonMapValueByExpr added in v0.2.29

func (g JsonMapExprGetter) GetJsonMapValueByExpr(expr string, data map[string]any) (any, bool)

GetJsonMapValueByExpr 从 map[string]any 中根据表达式获取项

func (JsonMapExprGetter) SplitEqual added in v0.2.29

func (JsonMapExprGetter) SplitEqual(expr string) (key, val string)

SplitEqual 将表达式按 '=' 分割,处理转义字符 '\=' 如果没有一个非转义的 '=' 则将整个表达式作为 key, val 为空

func (JsonMapExprGetter) SplitKey added in v0.2.29

func (JsonMapExprGetter) SplitKey(expr string) []string

SplitKey 将表达式按 '.' 分割,处理转义字符 '\.'

type JsonObj added in v0.2.29

type JsonObj struct {
	JsonTObj[any]
}

type JsonTObj added in v0.2.29

type JsonTObj[T any] struct {
	OrderedMap[string, T]
}

func (JsonTObj[T]) MarshalJSON added in v0.2.29

func (m JsonTObj[T]) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaler interface.

func (*JsonTObj[T]) UnmarshalJSON added in v0.2.29

func (m *JsonTObj[T]) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaler interface.

type OrderedMap added in v0.2.29

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

func (*OrderedMap[K, V]) Clear added in v0.2.29

func (m *OrderedMap[K, V]) Clear()

func (*OrderedMap[K, V]) Clone added in v0.2.29

func (m *OrderedMap[K, V]) Clone() *OrderedMap[K, V]

func (*OrderedMap[K, V]) Get added in v0.2.29

func (m *OrderedMap[K, V]) Get(key K) (v V, ok bool)

func (*OrderedMap[K, V]) Keys added in v0.2.29

func (m *OrderedMap[K, V]) Keys() []K

func (*OrderedMap[K, V]) Len added in v0.2.29

func (m *OrderedMap[K, V]) Len() int

func (*OrderedMap[K, V]) Merge added in v0.2.29

func (m *OrderedMap[K, V]) Merge(om *OrderedMap[K, V])

func (*OrderedMap[K, V]) Put added in v0.2.29

func (m *OrderedMap[K, V]) Put(key K, val V)

func (*OrderedMap[K, V]) Range added in v0.2.29

func (m *OrderedMap[K, V]) Range(f func(key K, val V) bool)

func (*OrderedMap[K, V]) Remove added in v0.2.29

func (m *OrderedMap[K, V]) Remove(key K)

func (*OrderedMap[K, V]) ToList added in v0.2.29

func (m *OrderedMap[K, V]) ToList() []V

func (*OrderedMap[K, V]) ToMap added in v0.2.29

func (m *OrderedMap[K, V]) ToMap() map[K]V

type RenewableContext

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

func CtxWithRenewableTimeout added in v0.2.13

func CtxWithRenewableTimeout(parent context.Context, timeout time.Duration) (*RenewableContext, context.CancelFunc)

func (*RenewableContext) Cancel

func (rc *RenewableContext) Cancel()

func (*RenewableContext) Deadline added in v0.2.13

func (*RenewableContext) Deadline() (deadline time.Time, ok bool)

func (*RenewableContext) Done

func (rc *RenewableContext) Done() <-chan struct{}

func (*RenewableContext) Err

func (rc *RenewableContext) Err() error

func (*RenewableContext) Renew

func (rc *RenewableContext) Renew(timeout time.Duration)

func (*RenewableContext) Value

func (rc *RenewableContext) Value(key interface{}) interface{}

type SliceRing added in v0.2.17

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

func NewSliceRing added in v0.2.17

func NewSliceRing[T any](capacity int) *SliceRing[T]

func (*SliceRing[T]) Add added in v0.2.17

func (r *SliceRing[T]) Add(item T)

func (*SliceRing[T]) Len added in v0.2.18

func (r *SliceRing[T]) Len() int

func (*SliceRing[T]) Peek added in v0.2.17

func (r *SliceRing[T]) Peek() (item T, ok bool)

func (*SliceRing[T]) Pop added in v0.2.17

func (r *SliceRing[T]) Pop() (item T, ok bool)

type TMap added in v0.2.29

type TMap[T any] struct {
	TRMap[string, T]
}

type TRMap added in v0.2.29

type TRMap[T any, R any] struct {
	sync.Map
}

func (*TRMap[T, R]) Del added in v0.2.29

func (t *TRMap[T, R]) Del(key T)

func (*TRMap[T, R]) Exists added in v0.2.29

func (t *TRMap[T, R]) Exists(key T) bool

func (*TRMap[T, R]) Get added in v0.2.29

func (t *TRMap[T, R]) Get(key T) (r R, ok bool)

func (*TRMap[T, R]) Keys added in v0.2.29

func (t *TRMap[T, R]) Keys() []T

func (*TRMap[T, R]) Len added in v0.2.29

func (t *TRMap[T, R]) Len() int

func (*TRMap[T, R]) Range added in v0.2.29

func (t *TRMap[T, R]) Range(f func(key T, value R) bool)

Range calls f sequentially for each key and value present in the map. if return false ,break range

func (*TRMap[T, R]) Set added in v0.2.29

func (t *TRMap[T, R]) Set(key T, value R)

type TimeCache

type TimeCache[T any] interface {
	Get() (T, error)
	Reset()
}

Jump to

Keyboard shortcuts

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