Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,20 @@ num := 42
ptr := common.ToPtr(num) // *int
```

**IsNilOrZero** - Check if a pointer is nil or points to a zero value
```go
import "github.com/aykhans/go-utils/common"

var ptr *int
common.IsNilOrZero(ptr) // true (nil pointer)

num := 0
common.IsNilOrZero(&num) // true (zero value)

num = 42
common.IsNilOrZero(&num) // false (non-zero value)
```

### parser

String parsing utilities with generic type support.
Expand Down Expand Up @@ -94,6 +108,27 @@ maps.UpdateMap(&old, new)
// old is now: {"a": 1, "b": 3, "c": 4}
```

### number

Number utility functions.

**NumLen** - Calculate the number of digits in an integer
```go
import "github.com/aykhans/go-utils/number"

number.NumLen(42) // returns 2
number.NumLen(-128) // returns 3
number.NumLen(0) // returns 1
number.NumLen(1000) // returns 4

// Works with all integer types
number.NumLen(int8(99)) // returns 2
number.NumLen(int64(123456789)) // returns 9
number.NumLen(uint32(4294967295)) // returns 10
```

Supported types: `int`, `int8`, `int16`, `int32`, `int64`, `uint`, `uint8`, `uint16`, `uint32`, `uint64`, `uintptr`

### errors

Advanced error handling utilities.
Expand Down
10 changes: 10 additions & 0 deletions common/compare.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package common

func IsNilOrZero[T comparable](value *T) bool {
if value == nil {
return true
}

var zero T
return *value == zero
}
Loading