From f174a165fe79c0f931a813c7e750057386897825 Mon Sep 17 00:00:00 2001 From: mountain Date: Mon, 23 Sep 2024 21:15:15 +0900 Subject: [PATCH] =?UTF-8?q?=EC=A7=80=EC=9B=90=20=ED=83=80=EC=9E=85=20?= =?UTF-8?q?=EB=B0=8F=20=EB=A1=9C=EA=B7=B8=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/client.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/client/client.go b/client/client.go index 8594222..8ae8962 100644 --- a/client/client.go +++ b/client/client.go @@ -133,6 +133,13 @@ type houstonClient struct { } func unmarshal[T any](val *T, src map[string]string) { + defer func() { + r := recover() + if r != nil { + logger.Error(r) + } + }() + argval := reflect.ValueOf(val) for i := 0; i < argval.Elem().Type().NumField(); i++ { if !argval.Elem().Type().Field(i).IsExported() { @@ -145,6 +152,9 @@ func unmarshal[T any](val *T, src map[string]string) { } else if argval.Elem().Field(i).Kind() == reflect.Array || argval.Elem().Field(i).Kind() == reflect.Slice { conv := strings.Split(arg, "\n") argval.Elem().Field(i).Set(reflect.ValueOf(conv)) + } else if argval.Elem().Field(i).Kind() == reflect.Bool { + bv, _ := strconv.ParseBool(arg) + argval.Elem().Field(i).SetBool(bv) } else { argval.Elem().Field(i).SetString(arg) }