Documentation ¶
Index ¶
- func CompareVersion(version1, version2 string) int
- func ConditionalRetryByExponentialBackoff(f func() error, cond func() bool, maxRetries int, ...) error
- func DisableHttpPProf(addr string)
- func EnableHttpPProf(addr, prefix string, errorHandler ...func(err error))
- func Hostname() string
- func If[V any](express bool, t, f V) V
- func LaunchTime() time.Time
- func MarshalIndentJSON(v interface{}, prefix, indent string) []byte
- func MarshalIndentJSONE(v interface{}, prefix, indent string) ([]byte, error)
- func MarshalJSON(v interface{}) []byte
- func MarshalJSONE(v interface{}) ([]byte, error)
- func MarshalToTargetWithJSON(src, dest interface{})
- func NotNil(a, b any) any
- func OldVersion(version1, version2 string) bool
- func PID() int
- func Retry(count int, interval time.Duration, f func() error) error
- func RetryAsync(count int, interval time.Duration, f func() error, callback func(err error))
- func RetryByExponentialBackoff(f func() error, maxRetries int, baseDelay, maxDelay time.Duration, ...) error
- func RetryByRule(f func() error, rule func(count int) time.Duration) error
- func RetryForever(interval time.Duration, f func() error)
- func UnmarshalJSON(data []byte, v interface{})
- func UnmarshalJSONE(data []byte, v interface{}) error
- type Counter
- type DynamicBitSet
- func (db *DynamicBitSet) Bits() []uint32
- func (db *DynamicBitSet) Clear(pos uint32)
- func (db *DynamicBitSet) Copy() *DynamicBitSet
- func (db *DynamicBitSet) Equal(other *DynamicBitSet) bool
- func (db *DynamicBitSet) In(mask *DynamicBitSet) bool
- func (db *DynamicBitSet) IsSet(pos uint32) bool
- func (db *DynamicBitSet) Key() DynamicBitSetKey
- func (db *DynamicBitSet) NotIn(mask *DynamicBitSet) bool
- func (db *DynamicBitSet) Set(pos uint32)
- func (db *DynamicBitSet) String() string
- type DynamicBitSetKey
- type DynamicWaitGroup
- type ErrorHandler
- type ErrorPolicyDecisionHandler
- type FunctionalErrorHandler
- type FunctionalErrorPolicyDecisionHandler
- type FunctionalHandler
- type Handler
- type InertiaSingleton
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CompareVersion ¶
CompareVersion 返回一个整数,用于表示两个版本号的比较结果:
- 如果 version1 大于 version2,它将返回 1
- 如果 version1 小于 version2,它将返回 -1
- 如果 version1 和 version2 相等,它将返回 0
Example ¶
package main import ( "fmt" "github.com/kercylan98/minotaur/toolkit" ) func main() { result := toolkit.CompareVersion("1.2.3", "1.2.2") fmt.Println(result) }
Output: 1
func ConditionalRetryByExponentialBackoff ¶
func ConditionalRetryByExponentialBackoff(f func() error, cond func() bool, maxRetries int, baseDelay, maxDelay time.Duration, multiplier, randomization float64, ignoreErrors ...error) error
ConditionalRetryByExponentialBackoff 该函数与 RetryByExponentialBackoff 类似,但是可以被中断
- cond 为中断条件,当 cond 返回 false 时,将会中断重试
该函数通常用于在重试过程中,需要中断重试的场景,例如:
- 用户请求开始游戏,由于网络等情况,进入重试状态。此时用户再次发送开始游戏请求,此时需要中断之前的重试,避免重复进入游戏
func DisableHttpPProf ¶
func DisableHttpPProf(addr string)
DisableHttpPProf 设置禁用 HTTP PProf
- 当 HTTP PProf 未启用时不会产生任何效果
- 该函数支持运行时调用且支持重复调用,重复调用不会重复禁用
func MarshalIndentJSON ¶
MarshalIndentJSON 将对象转换为 json
func MarshalIndentJSONE ¶
MarshalIndentJSONE 将对象转换为 json
func MarshalToTargetWithJSON ¶
func MarshalToTargetWithJSON(src, dest interface{})
MarshalToTargetWithJSON 将对象转换为目标对象
func OldVersion ¶
OldVersion 检查 version2 对于 version1 来说是不是旧版本
Example ¶
package main import ( "fmt" "github.com/kercylan98/minotaur/toolkit" ) func main() { result := toolkit.OldVersion("1.2.3", "1.2.2") fmt.Println(result) }
Output: true
func RetryAsync ¶
RetryAsync 与 Retry 类似,但是是异步执行
- 传入的 callback 函数会在执行完毕后被调用,如果执行成功,则 err 为 nil,否则为错误信息
- 如果 callback 为 nil,则不会在执行完毕后被调用
func RetryByExponentialBackoff ¶
func RetryByExponentialBackoff(f func() error, maxRetries int, baseDelay, maxDelay time.Duration, multiplier, randomization float64, ignoreErrors ...error) error
RetryByExponentialBackoff 根据指数退避算法尝试执行 f 函数
- maxRetries:最大重试次数
- baseDelay:基础延迟
- maxDelay:最大延迟
- multiplier:延迟时间的乘数,通常为 2
- randomization:延迟时间的随机化因子,通常为 0.5
- ignoreErrors:忽略的错误,当 f 返回的错误在 ignoreErrors 中时,将不会进行重试
func RetryByRule ¶
RetryByRule 根据提供的规则尝试执行 f 函数,如果 f 函数返回错误,则根据 rule 的返回值进行重试
- rule 将包含一个入参,表示第几次重试,返回值表示下一次重试的时间间隔,当返回值为 0 时,表示不再重试
- rule 的 count 将在 f 首次失败后变为 1,因此 rule 的入参将从 1 开始
func RetryForever ¶
RetryForever 根据提供的 interval 时间间隔尝试执行 f 函数,如果 f 函数返回错误,则在 interval 后重试,直到成功
func UnmarshalJSONE ¶
UnmarshalJSONE 将 json 转换为对象
Types ¶
type Counter ¶
type Counter[T constraints.Number] struct { // contains filtered or unexported fields }
Counter 树计数器
type DynamicBitSet ¶
type DynamicBitSet struct {
// contains filtered or unexported fields
}
DynamicBitSet 动态位集
func NewDynamicBitSet ¶
func NewDynamicBitSet() *DynamicBitSet
func (*DynamicBitSet) Equal ¶
func (db *DynamicBitSet) Equal(other *DynamicBitSet) bool
Equal 比较两个 DynamicBitSet 是否相等
func (*DynamicBitSet) In ¶
func (db *DynamicBitSet) In(mask *DynamicBitSet) bool
In 检查 DynamicBitSet 是否包含另一个 DynamicBitSet
func (*DynamicBitSet) Key ¶
func (db *DynamicBitSet) Key() DynamicBitSetKey
Key 返回 DynamicBitSet 表示的键
func (*DynamicBitSet) NotIn ¶
func (db *DynamicBitSet) NotIn(mask *DynamicBitSet) bool
func (*DynamicBitSet) String ¶
func (db *DynamicBitSet) String() string
type DynamicBitSetKey ¶
type DynamicBitSetKey = string
type DynamicWaitGroup ¶
type DynamicWaitGroup struct { ChangeHook func(before, delta, curr int64) // contains filtered or unexported fields }
DynamicWaitGroup 是一个动态的 WaitGroup,允许在等待的过程中动态地添加或减少等待的计数
func NewDynamicWaitGroup ¶
func NewDynamicWaitGroup() *DynamicWaitGroup
NewDynamicWaitGroup 创建一个新的 DynamicWaitGroup
func (*DynamicWaitGroup) Add ¶
func (d *DynamicWaitGroup) Add(delta int64) int64
Add 增加等待的计数,返回当前的计数
func (*DynamicWaitGroup) Wait ¶
func (d *DynamicWaitGroup) Wait(handler ...func())
Wait 等待所有的计数完成
- 当传入 handler 时将会在计数完成后执行 handler,执行时会阻止计数器的变化
type ErrorHandler ¶
type ErrorHandler interface { // Handle 处理错误,根据不同的使用场景,err 可能会为空值 Handle(err error) }
ErrorHandler 是一个通用的错误处理器
type ErrorPolicyDecisionHandler ¶
type ErrorPolicyDecisionHandler[T any] interface { // Handle 处理错误,根据不同的使用场景,err 可能会为空值 Handle(err error) T }
ErrorPolicyDecisionHandler 是一个包含决策的错误处理器
type FunctionalErrorHandler ¶
type FunctionalErrorHandler func(err error)
FunctionalErrorHandler 是一个函数式的错误处理器
func (FunctionalErrorHandler) Handle ¶
func (f FunctionalErrorHandler) Handle(err error)
Handle 处理错误,根据不同的使用场景,err 可能会为空值
type FunctionalErrorPolicyDecisionHandler ¶
FunctionalErrorPolicyDecisionHandler 是一个函数式的包含决策的错误处理器
func (FunctionalErrorPolicyDecisionHandler[T]) Handle ¶
func (f FunctionalErrorPolicyDecisionHandler[T]) Handle(err error) T
Handle 处理错误,根据不同的使用场景,err 可能会为空值
type FunctionalHandler ¶
type FunctionalHandler func()
func (FunctionalHandler) Handle ¶
func (f FunctionalHandler) Handle()
type InertiaSingleton ¶
type InertiaSingleton[T any] struct { // contains filtered or unexported fields }
func NewInertiaSingleton ¶
func NewInertiaSingleton[T any](constructor func() T) *InertiaSingleton[T]
func (*InertiaSingleton[T]) Get ¶
func (s *InertiaSingleton[T]) Get() T
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package collection 定义了各种对于集合操作有用的各种函数
|
Package collection 定义了各种对于集合操作有用的各种函数 |
navigate
|
|