Compare commits

...

2 Commits

Author SHA1 Message Date
0006c6859d v0.0.150 2023-06-07 17:48:36 +02:00
827b3fc1b7 v0.0.149 2023-06-07 17:45:45 +02:00
3 changed files with 15 additions and 4 deletions

View File

@@ -1,5 +1,5 @@
package goext
const GoextVersion = "0.0.148"
const GoextVersion = "0.0.150"
const GoextVersionTimestamp = "2023-06-07T17:22:38+0200"
const GoextVersionTimestamp = "2023-06-07T17:48:36+0200"

View File

@@ -46,10 +46,14 @@ func (pss PrimitiveStringSerializer) ValueToString(v any) (string, error) {
func (pss PrimitiveStringSerializer) ValueFromString(str string, outType reflect.Type) (any, error) {
if str == "" {
if outType.Kind() == reflect.Ptr && str == "" {
return reflect.Zero(outType).Interface(), nil // = nil.(outType), nil
}
if str == "" {
return reflect.Zero(outType).Interface(), nil // = <default>(outType), nil
}
if outType.Kind() == reflect.Ptr {
innerValue, err := pss.ValueFromString(str, outType.Elem())

View File

@@ -4,6 +4,7 @@ import (
"gogs.mikescher.com/BlackForestBytes/goext/langext"
"gogs.mikescher.com/BlackForestBytes/goext/reflectext"
"reflect"
"strings"
)
func (c *Coll[TData]) init() {
@@ -32,7 +33,13 @@ func (c *Coll[TData]) initFields(prefix string, rval reflect.Value, idxarr []int
}
bsonkey, found := rsfield.Tag.Lookup("bson")
if !found || bsonkey == "-" {
if !found {
continue
}
if strings.Contains(bsonkey, ",") {
bsonkey = bsonkey[:strings.Index(bsonkey, ",")]
}
if bsonkey == "-" {
continue
}