API Documentation

This document provides detailed API reference for LazyGophers Utils.

Core Utilities

utils.Must()

Assert operation succeeds, panic on failure.

func Must[T any](value T, err error) T

Parameters:

  • value - Return value
  • err - Error

Returns:

  • Returns value if err is nil
  • Panics if err is not nil

Example:

data := utils.Must(loadData())

utils.MustSuccess()

Assert error is nil.

func MustSuccess(err error)

Parameters:

  • err - Error

Example:

utils.MustSuccess(config.Load(&cfg, "config.json"))

utils.MustOk()

Assert second return value is true.

func MustOk[T any](value T, ok bool) T

Parameters:

  • value - Return value
  • ok - Success flag

Returns:

  • Returns value if ok is true
  • Panics if ok is false

Example:

value := utils.MustOk(getValue())

utils.Validate()

Validate struct data.

func Validate(v any) error

Parameters:

  • v - Struct to validate

Returns:

  • Validation error if validation fails

Example:

type User struct {
    Name  string `validate:"required"`
    Email string `validate:"required,email"`
    Age   int    `validate:"min=0,max=150"`
}

user := User{
    Name:  "John Doe",
    Email: "john@example.com",
    Age:   25,
}

if err := utils.Validate(&user); err != nil {
    fmt.Printf("Validation failed: %v\n", err)
}

Data Processing

candy.ToInt()

Convert string to integer.

func ToInt(s string) int

Parameters:

  • s - String

Returns:

  • Integer value

Example:

age := candy.ToInt("25")

candy.ToFloat()

Convert string to float.

func ToFloat(s string) float64

Parameters:

  • s - String

Returns:

  • Float value

Example:

price := candy.ToFloat("99.99")

candy.ToBool()

Convert string to boolean.

func ToBool(s string) bool

Parameters:

  • s - String

Returns:

  • Boolean value

Example:

active := candy.ToBool("true")

candy.ToString()

Convert any type to string.

func ToString(v any) string

Parameters:

  • v - Any value

Returns:

  • String

Example:

str := candy.ToString(123)

Time Processing

xtime.NowCalendar()

Get current calendar.

func NowCalendar() *Calendar

Returns:

  • Current calendar object

Example:

cal := xtime.NowCalendar()
fmt.Printf("Today: %s\n", cal.String())

Calendar.LunarDate()

Get lunar date.

func (c *Calendar) LunarDate() string

Returns:

  • Lunar date string

Example:

fmt.Printf("Lunar: %s\n", cal.LunarDate())

Calendar.Animal()

Get zodiac animal.

func (c *Calendar) Animal() string

Returns:

  • Zodiac animal string

Example:

fmt.Printf("Animal: %s\n", cal.Animal())

Calendar.CurrentSolarTerm()

Get current solar term.

func (c *Calendar) CurrentSolarTerm() string

Returns:

  • Solar term string

Example:

fmt.Printf("Solar Term: %s\n", cal.CurrentSolarTerm())

Configuration Management

config.Load()

Load configuration file.

func Load(v any, filename string) error

Parameters:

  • v - Config struct pointer
  • filename - Configuration file name

Returns:

  • Error if loading fails

Supported formats:

  • JSON
  • YAML
  • TOML
  • INI
  • HCL

Example:

type Config struct {
    Database string `json:"database"`
    Port     int    `json:"port"`
    Debug    bool   `json:"debug"`
}

var cfg Config
utils.MustSuccess(config.Load(&cfg, "config.json"))

Concurrency Control

routine.NewPool()

Create worker pool.

func NewPool(size int) *Pool

Parameters:

  • size - Pool size

Returns:

  • Worker pool object

Example:

pool := routine.NewPool(10)
defer pool.Close()

Pool.Submit()

Submit task to worker pool.

func (p *Pool) Submit(fn func())

Parameters:

  • fn - Function to execute

Example:

pool.Submit(func() {
    fmt.Println("Task executed")
})

wait.For()

Wait for condition.

func For(timeout time.Duration, condition func() bool) bool

Parameters:

  • timeout - Timeout duration
  • condition - Condition function

Returns:

  • Whether condition was met before timeout

Example:

success := wait.For(5*time.Second, func() bool {
    return pool.Running() == 0
})

More APIs

For complete API documentation, visit: