util

package
v1.43.1 Latest Latest
Warning

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

Go to latest
Published: Dec 23, 2022 License: AGPL-3.0 Imports: 20 Imported by: 36

Documentation

Index

Constants

View Source
const (
	InfiniteRetry = 0
)
View Source
const MaxDigits = 18 // MAX_INT64 ~ 9 * 10^18
View Source
const Pointer = reflect.Pointer

Variables

View Source
var Pow10Table = [MaxDigits + 1]int64{
	1, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16, 1e17, 1e18,
}

Functions

func FNV32 added in v1.33.0

func FNV32(s string) uint32

func FilterSimpleArgs added in v1.33.4

func FilterSimpleArgs(args []interface{}) (simpleArgs []interface{})

FilterSimpleArgs filters out the simple type arguments int, string, bool, and []byte

func FormatFloat

func FormatFloat(val float64, prec int) string

func FormatValue added in v1.28.0

func FormatValue(val fixedpoint.Value, prec int) string

func GetEnvVarBool added in v1.17.0

func GetEnvVarBool(n string) (bool, bool)

func GetEnvVarDuration added in v1.17.0

func GetEnvVarDuration(n string) (time.Duration, bool)

func GetEnvVarInt added in v1.17.0

func GetEnvVarInt(n string) (int, bool)

func IsPaperTrade added in v1.33.0

func IsPaperTrade() bool

func MaskKey added in v1.21.0

func MaskKey(key string) string

func MillisecondsJitter added in v1.17.0

func MillisecondsJitter(d time.Duration, jitterInMilliseconds int) time.Duration

func MustParseFloat

func MustParseFloat(s string) float64

func NewValidLimiter

func NewValidLimiter(r rate.Limit, b int) (*rate.Limiter, error)

func NotZero

func NotZero(v float64) bool

func ParseFloat

func ParseFloat(s string) (float64, error)

func Pow10

func Pow10(n int64) int64

func Retry

func Retry(ctx context.Context, attempts int, duration time.Duration, fnToRetry func() error, errHandler func(error), predicators ...RetryPredicator) (err error)

Retry retrys the passed function for "attempts" times, if passed function return error. Setting attempts to zero means keep retrying.

func SafeMkdirAll added in v1.33.0

func SafeMkdirAll(p string) error

func SetEnvVarBool added in v1.18.0

func SetEnvVarBool(n string, v *bool) bool

func ShouldDelay

func ShouldDelay(l *rate.Limiter, minInterval time.Duration) time.Duration

func StringSliceContains added in v1.11.1

func StringSliceContains(slice []string, needle string) bool

func StringSplitByLength added in v1.42.0

func StringSplitByLength(s string, length int) (result []string)

func TryLock added in v1.38.0

func TryLock(lock *sync.RWMutex) bool

func TryRLock added in v1.38.0

func TryRLock(lock *sync.RWMutex) bool

func UnixMilli added in v1.21.0

func UnixMilli() int64

func WriteJsonFile added in v1.33.0

func WriteJsonFile(p string, obj interface{}) error

func Zero

func Zero(v float64) bool

Types

type Reonce added in v1.21.0

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

func (*Reonce) Do added in v1.21.0

func (o *Reonce) Do(f func())

func (*Reonce) Reset added in v1.21.0

func (o *Reonce) Reset()

type Response added in v1.11.0

type Response struct {
	*http.Response

	// Body overrides the composited Body field.
	Body []byte
}

Response is wrapper for standard http.Response and provides more methods.

func NewResponse added in v1.11.0

func NewResponse(r *http.Response) (response *Response, err error)

NewResponse is a wrapper of the http.Response instance, it reads the response body and close the file.

func (*Response) DecodeJSON added in v1.11.0

func (r *Response) DecodeJSON(o interface{}) error

func (*Response) IsError added in v1.11.0

func (r *Response) IsError() bool

func (*Response) IsHTML added in v1.11.0

func (r *Response) IsHTML() bool

func (*Response) IsJSON added in v1.11.0

func (r *Response) IsJSON() bool

func (*Response) String added in v1.11.0

func (r *Response) String() string

String converts response body to string. An empty string will be returned if error.

type RetryPredicator

type RetryPredicator func(e error) bool

type TimeProfile added in v1.17.0

type TimeProfile struct {
	Name               string
	StartTime, EndTime time.Time
	Duration           time.Duration
}

func StartTimeProfile added in v1.17.0

func StartTimeProfile(args ...string) TimeProfile

func (*TimeProfile) Stop added in v1.17.0

func (p *TimeProfile) Stop() time.Duration

func (*TimeProfile) StopAndLog added in v1.33.0

func (p *TimeProfile) StopAndLog(f logFunction)

func (*TimeProfile) TilNow added in v1.17.0

func (p *TimeProfile) TilNow() time.Duration

type VolatileMemory

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

func NewDetectorCache

func NewDetectorCache() *VolatileMemory

func (*VolatileMemory) IsObjectFresh

func (i *VolatileMemory) IsObjectFresh(obj interface{}, ttl time.Duration) bool

func (*VolatileMemory) IsTextFresh

func (i *VolatileMemory) IsTextFresh(text string, ttl time.Duration) bool

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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