Skip to content

Commit 2f3923c

Browse files
authored
Merge pull request #1 from aykhans/v1.0.3
2 parents d1ea787 + 70b1a83 commit 2f3923c

File tree

5 files changed

+764
-0
lines changed

5 files changed

+764
-0
lines changed

README.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,20 @@ num := 42
2222
ptr := common.ToPtr(num) // *int
2323
```
2424

25+
**IsNilOrZero** - Check if a pointer is nil or points to a zero value
26+
```go
27+
import "github.com/aykhans/go-utils/common"
28+
29+
var ptr *int
30+
common.IsNilOrZero(ptr) // true (nil pointer)
31+
32+
num := 0
33+
common.IsNilOrZero(&num) // true (zero value)
34+
35+
num = 42
36+
common.IsNilOrZero(&num) // false (non-zero value)
37+
```
38+
2539
### parser
2640

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

111+
### number
112+
113+
Number utility functions.
114+
115+
**NumLen** - Calculate the number of digits in an integer
116+
```go
117+
import "github.com/aykhans/go-utils/number"
118+
119+
number.NumLen(42) // returns 2
120+
number.NumLen(-128) // returns 3
121+
number.NumLen(0) // returns 1
122+
number.NumLen(1000) // returns 4
123+
124+
// Works with all integer types
125+
number.NumLen(int8(99)) // returns 2
126+
number.NumLen(int64(123456789)) // returns 9
127+
number.NumLen(uint32(4294967295)) // returns 10
128+
```
129+
130+
Supported types: `int`, `int8`, `int16`, `int32`, `int64`, `uint`, `uint8`, `uint16`, `uint32`, `uint64`, `uintptr`
131+
97132
### errors
98133

99134
Advanced error handling utilities.

common/compare.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package common
2+
3+
func IsNilOrZero[T comparable](value *T) bool {
4+
if value == nil {
5+
return true
6+
}
7+
8+
var zero T
9+
return *value == zero
10+
}

0 commit comments

Comments
 (0)