Compare commits

...

2 Commits

Author SHA1 Message Date
890e16241d v0.0.380 exerr properly handle inf and nan floats
All checks were successful
Build Docker and Deploy / Run goext test-suite (push) Successful in 3m8s
2024-01-22 12:33:41 +01:00
b9d0348735 v0.0.379
All checks were successful
Build Docker and Deploy / Run goext test-suite (push) Successful in 2m57s
2024-01-19 17:30:20 +01:00
3 changed files with 46 additions and 2 deletions

View File

@@ -9,6 +9,7 @@ import (
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/bson/primitive"
"gogs.mikescher.com/BlackForestBytes/goext/langext"
"math"
"strconv"
"strings"
"time"
@@ -667,6 +668,28 @@ func (v MetaValue) rawValueForJson() any {
}
return v.Value.(EnumWrap).ValueString
}
if v.DataType == MDTFloat32 {
if math.IsNaN(float64(v.Value.(float32))) {
return "float64::NaN"
} else if math.IsInf(float64(v.Value.(float32)), +1) {
return "float64::+inf"
} else if math.IsInf(float64(v.Value.(float32)), -1) {
return "float64::-inf"
} else {
return v.Value
}
}
if v.DataType == MDTFloat64 {
if math.IsNaN(v.Value.(float64)) {
return "float64::NaN"
} else if math.IsInf(v.Value.(float64), +1) {
return "float64::+inf"
} else if math.IsInf(v.Value.(float64), -1) {
return "float64::-inf"
} else {
return v.Value
}
}
return v.Value
}

View File

@@ -1,5 +1,5 @@
package goext
const GoextVersion = "0.0.378"
const GoextVersion = "0.0.380"
const GoextVersionTimestamp = "2024-01-16T15:04:10+0100"
const GoextVersionTimestamp = "2024-01-22T12:33:41+0100"

21
langext/must.go Normal file
View File

@@ -0,0 +1,21 @@
package langext
// Must returns a value and panics on error
//
// Usage: Must(methodWithError(...))
func Must[T any](v T, err error) T {
if err != nil {
panic(err)
}
return v
}
// MustBool returns a value and panics on missing
//
// Usage: MustBool(methodWithOkayReturn(...))
func MustBool[T any](v T, ok bool) T {
if !ok {
panic("not ok")
}
return v
}