Skip to content

Commit a0d8cdb

Browse files
committed
add flaot support
1 parent 41872af commit a0d8cdb

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

internal/config/config.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -529,8 +529,7 @@ func (c *Config) Load() error {
529529
}
530530
}
531531

532-
err := c.V.Unmarshal(&c)
533-
if err != nil {
532+
if err := c.V.Unmarshal(c); err != nil {
534533
log.Error("Environment can't be loaded", "err", err)
535534
return err
536535
}

internal/config/config_validation.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -456,6 +456,27 @@ func convertConfigTypes(typ reflect.Type, settings map[string]any) map[string]an
456456
if b, err := strconv.ParseBool(v); err == nil {
457457
result[tag] = b
458458
}
459+
case float64:
460+
result[tag] = v != 0
461+
default:
462+
result[tag] = v
463+
}
464+
case reflect.Float32, reflect.Float64:
465+
switch v := raw.(type) {
466+
case string:
467+
if f, err := strconv.ParseFloat(strings.TrimSpace(v), 64); err == nil {
468+
if field.Type.Kind() == reflect.Float32 {
469+
result[tag] = float32(f)
470+
} else {
471+
result[tag] = f
472+
}
473+
}
474+
case float64:
475+
if field.Type.Kind() == reflect.Float32 {
476+
result[tag] = float32(v)
477+
} else {
478+
result[tag] = v
479+
}
459480
default:
460481
result[tag] = v
461482
}

0 commit comments

Comments
 (0)