common

package
v0.3.1 Latest Latest
Warning

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

Go to latest
Published: Jul 18, 2025 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	Version   string
	GitSha    string
	BuildTime string
)

Version info of this binary, set by -ldflags

Functions

func CamelListToSnakeList

func CamelListToSnakeList(camelList []string) []string

CamelListToSnakeList cast each string in camel list to snake case.

func CamelToKebab

func CamelToKebab(camel string) string

CamelToKebab cast camel case to kebab case

func CamelToSnake

func CamelToSnake(camel string) string

CamelToSnake cast camel case to snake case

func CopyFields

func CopyFields(dest, src any, fields ...string) error

CopyFields copies fields from src to dest. The dest and src can be different types but the field with same name must has the same type.

func FormattedCamel

func FormattedCamel(str string) string

FormattedCamel cast to formatted cammel. For example: VirtualMachineID to VirtualMachineId

func Pointer

func Pointer[T any](val T) *T

Pointer returns pointer of val

func PrettyDump

func PrettyDump(a ...any)

PrettyDump prints Golang objects in a beautiful way.

func PrettySdump

func PrettySdump(a ...any) string

PrettySdump prints Golang objects in a beautiful way to string.

func RandomString

func RandomString(strlen int, withoutNumber ...bool) string

RandomString return random string with specified length

func SnakeListToCamelList

func SnakeListToCamelList(snakeList []string) []string

SnakeListToCamelList cast each string in snake list to camel case.

func SnakeToCamel

func SnakeToCamel(snake string) string

SnakeToCamel cast snake case to camel case

func Split

func Split(src string) (entries []string)

Split splits the camelcase word and returns a list of words. It also supports digits. Both lower camel case and upper camel case are supported. For more info please check: http://en.wikipedia.org/wiki/CamelCase

Examples

"" =>                     [""]
"lowercase" =>            ["lowercase"]
"Class" =>                ["Class"]
"MyClass" =>              ["My", "Class"]
"MyC" =>                  ["My", "C"]
"HTML" =>                 ["HTML"]
"PDFLoader" =>            ["PDF", "Loader"]
"AString" =>              ["A", "String"]
"SimpleXMLParser" =>      ["Simple", "XML", "Parser"]
"vimRPCPlugin" =>         ["vim", "RPC", "Plugin"]
"GL11Version" =>          ["GL", "11", "Version"]
"99Bottles" =>            ["99", "Bottles"]
"May5" =>                 ["May", "5"]
"BFG9000" =>              ["BFG", "9000"]
"BöseÜberraschung" =>     ["Böse", "Überraschung"]
"Two  spaces" =>          ["Two", "  ", "spaces"]
"BadUTF8\xe2\xe2\xa1" =>  ["BadUTF8\xe2\xe2\xa1"]

Splitting rules

  1. If string is not valid UTF-8, return it without splitting as single item array.
  2. Assign all unicode characters into one of 4 sets: lower case letters, upper case letters, numbers, and all other characters.
  3. Iterate through characters of string, introducing splits between adjacent characters that belong to different sets.
  4. Iterate through array of split strings, and if a given string is upper case: if subsequent string is lower case: move last character of upper case string to beginning of lower case string

func UpdateStructByMap

func UpdateStructByMap(target any, source map[string]any) ([]string, error)

UpdateStructByMap set map's values to struct's fields, it will ignore fields that don't exist in the struct. return: updateFields: the updated fields to struct, the slice element format is snake

Types

type WorkerPool

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

WorkerPool is a pool of workers that process items concurrently.

func NewWorkerPool

func NewWorkerPool[T any](procFunc func(context.Context, T) error, size int) *WorkerPool[T]

NewWorkerPool creates a new worker pool.

func (*WorkerPool[T]) Add

func (wp *WorkerPool[T]) Add(item T)

Add adds an item to the pool.

func (*WorkerPool[T]) Errors

func (wp *WorkerPool[T]) Errors() []error

Errors returns the errors encountered during processing.

func (*WorkerPool[T]) Join

func (wp *WorkerPool[T]) Join()

Join waits for all workers to finish.

func (*WorkerPool[T]) Start

func (wp *WorkerPool[T]) Start(ctx context.Context)

Start starts the worker pool.

Jump to

Keyboard shortcuts

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