util

package
v1.26.0-120.2 Latest Latest
Warning

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

Go to latest
Published: Aug 28, 2024 License: MIT Imports: 9 Imported by: 0

Documentation

Overview

util contains small standalone utility functions. This should have no dependencies on other server packages.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CloneMapNonNil added in v1.18.4

func CloneMapNonNil[M ~map[K]V, K comparable, V any](m M) M

CloneMapNonNil is like maps.Clone except it can't return nil, it will return an empty map instead.

func ErrorType added in v1.24.0

func ErrorType(err error) string

ErrorType returns a best effort guess at the most meaningful type name for the given error. If any of err's underlying errors implement TypedError, then the type name of the first such error is returned. This allows us to be explicit about the tag values we want to use for telemetry. Otherwise, the type name of the first non-wrapper error in the depth-first traversal of err's tree is returned. We consider errors wrapped via fmt.Errorf, errors.Join and some pkg/errors functions to be wrapper errors.

func FilterSlice added in v1.21.0

func FilterSlice[T any](in []T, predicate func(T) bool) []T

FilterSlice iterates over elements of a slice, returning a new slice of all elements predicate returns true for.

func FoldSlice added in v1.23.0

func FoldSlice[T any, A any](in []T, initializer A, reducer func(A, T) A) A

FoldSlice folds left a slice using given reducer function and initial value.

func InterruptibleSleep added in v1.25.0

func InterruptibleSleep(ctx context.Context, timeout time.Duration)

InterruptibleSleep is like time.Sleep but can be interrupted by a context.

func InverseMap added in v1.20.0

func InverseMap[M ~map[K]V, K, V comparable](m M) map[V]K

InverseMap creates the inverse map, ie., for a key-value map, it builds the value-key map.

func MapConcurrent added in v1.21.0

func MapConcurrent[IN any, OUT any](input []IN, mapper func(IN) (OUT, error)) ([]OUT, error)

MapConcurrent concurrently maps a function over input and fails fast on error.

func MapSlice added in v1.23.0

func MapSlice[T, S any](xs []T, f func(T) S) []S

MapSlice given slice xs []T and f(T) S produces slice []S by applying f to every element of xs

func MaxTime

func MaxTime(a, b time.Time) time.Time

MaxTime returns the later of two given time.Time

func MinTime

func MinTime(a, b time.Time) time.Time

MinTime returns the earlier of two given time.Time

func NextAlignedTime added in v1.24.0

func NextAlignedTime(t time.Time, align time.Duration) time.Time

NextAlignedTime returns the earliest time after `t` that is aligned to an integer multiple of `align` since the unix epoch.

func Ptr added in v1.24.0

func Ptr[T any](v T) *T

Ptr returns a pointer to a copy of v.

func RepeatSlice added in v1.23.0

func RepeatSlice[T any](xs []T, n int) []T

RepeatSlice given slice and a number (n) produces a new slice containing original slice n times if n is non-positive will produce nil

func SliceHead

func SliceHead[S ~[]E, E any](s S, n int) S

SliceHead returns the first n elements of s. n may be greater than len(s).

func SliceTail

func SliceTail[S ~[]E, E any](s S, n int) S

SliceTail returns the last n elements of s. n may be greater than len(s).

func SortSlice

func SortSlice[S ~[]E, E expconstraints.Ordered](slice S)

SortSlice sorts the given slice of an ordered type. Sort is not guaranteed to be stable.

func TruncateUTF8 added in v1.25.0

func TruncateUTF8(s string, n int) string

TruncateUTF8 truncates s to no more than n _bytes_, and returns a valid utf-8 string as long as the input is a valid utf-8 string. Note that truncation pays attention to codepoints only! This may truncate in the middle of a grapheme cluster.

Types

This section is empty.

Jump to

Keyboard shortcuts

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