util

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Jul 30, 2020 License: AGPL-3.0 Imports: 16 Imported by: 86

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AllCombinationsUint32 added in v1.0.0

func AllCombinationsUint32(parts [][]uint32) (out [][]uint32)

AllCombinationsUint32 returns all combinations of the input

func AtomicBumpInt64 added in v1.0.0

func AtomicBumpInt64(loc *int64, newVal int64)

AtomicBumpInt64 assures the given address stores the highest int64 between the current value, the value provided and the value provided by any other concurrently executing call

func AtomicBumpUint32 added in v1.0.0

func AtomicBumpUint32(loc *uint32, newVal uint32)

AtomicBumpUint32 assures the given address stores the highest uint32 between the current value, the value provided and the value provided by any other concurrently executing call

func DecompressGzip added in v1.0.0

func DecompressGzip(r io.Reader) (string, error)

func IsDigit

func IsDigit(r byte) bool

func Lcm

func Lcm(vals []uint32) uint32

Lcm returns the least common multiple

func Max

func Max(a, b uint32) uint32

func MaxInt

func MaxInt(a, b int) int

func Min

func Min(a, b uint32) uint32

func NaturalLess

func NaturalLess(s, t string) bool

NaturalLess compares strings lexicographically *except* substrings of numbers are sorted numerically

func ParseIngestFromFlags added in v0.13.0

func ParseIngestFromFlags(ingestFromStr string) (map[uint32]int64, error)

func ReadEntry

func ReadEntry(TomlFilename string, EntryName string) interface{}

func RegisterFlags added in v1.0.0

func RegisterFlags(rs ...Registerer)

RegisterFlags registers flags with the provided Registerers

func TS

func TS(ts interface{}) string

func TimeBoundWithCacheFunc added in v0.13.1

func TimeBoundWithCacheFunc(fn func() interface{}, timeout, maxAge time.Duration) func() interface{}

TimeBoundWithCacheFunc decorates a function that has a return value in order to bound its execution time. When the decorated function is called, if the original function takes more than 'timeout' to execute, the returned value will be the value returned by a previous call. If no previous call was performed, the call will block until the original function returns.

Types

type BufferPool

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

func NewBufferPool

func NewBufferPool() *BufferPool

func (*BufferPool) Get

func (b *BufferPool) Get() []byte

func (*BufferPool) Put

func (b *BufferPool) Put(buf []byte)

type BufferPool33 added in v1.0.0

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

BufferPool33 is a pool that returns cap=33 len=0 byte slices

func NewBufferPool33 added in v1.0.0

func NewBufferPool33() *BufferPool33

func (*BufferPool33) Get added in v1.0.0

func (b *BufferPool33) Get() []byte

func (*BufferPool33) Put added in v1.0.0

func (b *BufferPool33) Put(buf []byte)

type Int64SliceFlag added in v1.0.0

type Int64SliceFlag []int64

func (*Int64SliceFlag) Set added in v1.0.0

func (i *Int64SliceFlag) Set(value string) error

func (*Int64SliceFlag) String added in v1.0.0

func (i *Int64SliceFlag) String() string

type Limiter

type Limiter chan struct{}

Limiter provides a mechanism for limiting concurrency. Users need to call Acquire() before starting work and Release() when the work is done. Acquire() will block if the Limiters limit has already been reached and unblock when another thread calls Release(), or the passed context is canceled.

func NewLimiter

func NewLimiter(l int) Limiter

NewLimiter creates a limiter with l slots

func (Limiter) Acquire

func (l Limiter) Acquire(ctx context.Context) bool

Acquire returns when a slot is available. If the limit is reached it will block until another thread calls Release() or the context is done. In the latter case we return false.

func (Limiter) Release

func (l Limiter) Release()

type NaturalSortStringSlice

type NaturalSortStringSlice []string

NaturalSortStringSlice sorts strings lexicographically *except* substrings of numbers are sorted numerically

func (NaturalSortStringSlice) Len

func (ss NaturalSortStringSlice) Len() int

func (NaturalSortStringSlice) Less

func (ss NaturalSortStringSlice) Less(i, j int) bool

func (NaturalSortStringSlice) Swap

func (ss NaturalSortStringSlice) Swap(i, j int)

type Registerer added in v1.0.0

type Registerer interface {
	RegisterFlags(*flag.FlagSet)
}

Registerer is a thing that can RegisterFlags

type StringHash32 added in v0.13.1

type StringHash32 interface {
	hash.Hash32
	WriteString(string) (int, error)
}

func NewFnv32aStringWriter added in v0.13.0

func NewFnv32aStringWriter() StringHash32

type StringHash64 added in v0.13.1

type StringHash64 interface {
	hash.Hash64
	WriteString(string) (int, error)
}

func NewFnv64aStringWriter added in v0.13.0

func NewFnv64aStringWriter() StringHash64

type Sum32aStringWriter added in v0.13.0

type Sum32aStringWriter uint32

Sum32aStringWriter is mostly a copy of fnv.sum32a the only difference is the additional method WriteString(), due to this additional method it satisfies the io.StringWriter interface which can prevent unnecessary conversions to/from byte slices

func (*Sum32aStringWriter) BlockSize added in v0.13.0

func (s *Sum32aStringWriter) BlockSize() int

func (*Sum32aStringWriter) Reset added in v0.13.0

func (s *Sum32aStringWriter) Reset()

func (*Sum32aStringWriter) Size added in v0.13.0

func (s *Sum32aStringWriter) Size() int

func (*Sum32aStringWriter) Sum added in v0.13.0

func (s *Sum32aStringWriter) Sum(in []byte) []byte

func (*Sum32aStringWriter) Sum32 added in v0.13.0

func (s *Sum32aStringWriter) Sum32() uint32

func (*Sum32aStringWriter) Write added in v0.13.0

func (s *Sum32aStringWriter) Write(data []byte) (int, error)

func (*Sum32aStringWriter) WriteString added in v0.13.0

func (s *Sum32aStringWriter) WriteString(data string) (int, error)

type Sum64aStringWriter added in v0.13.0

type Sum64aStringWriter uint64

Sum64aStringWriter is mostly a copy of fnv.sum64a the only difference is the additional method WriteString(), due to this additional method it satisfies the io.StringWriter interface which can prevent unnecessary conversions to/from byte slices

func (*Sum64aStringWriter) BlockSize added in v0.13.0

func (s *Sum64aStringWriter) BlockSize() int

func (*Sum64aStringWriter) Reset added in v0.13.0

func (s *Sum64aStringWriter) Reset()

func (*Sum64aStringWriter) Size added in v0.13.0

func (s *Sum64aStringWriter) Size() int

func (*Sum64aStringWriter) Sum added in v0.13.0

func (s *Sum64aStringWriter) Sum(in []byte) []byte

func (*Sum64aStringWriter) Sum64 added in v0.13.0

func (s *Sum64aStringWriter) Sum64() uint64

func (*Sum64aStringWriter) Write added in v0.13.0

func (s *Sum64aStringWriter) Write(data []byte) (int, error)

func (*Sum64aStringWriter) WriteString added in v0.13.0

func (s *Sum64aStringWriter) WriteString(data string) (int, error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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