From bba4af93d64c98692bb95495e331d706b9db0e1f Mon Sep 17 00:00:00 2001 From: Evgenii Stratonikov Date: Fri, 11 Oct 2024 10:28:55 +0300 Subject: [PATCH] [#123] Resolve funlen linter issue Signed-off-by: Evgenii Stratonikov --- util/protogen/internalgengo/json.go | 34 ++++++++++++++++------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/util/protogen/internalgengo/json.go b/util/protogen/internalgengo/json.go index 55c9cd3..20730a6 100644 --- a/util/protogen/internalgengo/json.go +++ b/util/protogen/internalgengo/json.go @@ -70,6 +70,24 @@ func emitJSONParseInteger(g *protogen.GeneratedFile, ident string, method string g.P(ident, " := ", typ, "(v)") } +func emitJSONReadEnum(g *protogen.GeneratedFile, name string, enumType string) { + g.P(`switch v := in.Interface().(type) { + case string: + if vv, ok := `+enumType+`_value[v]; ok { + `+name+` = `+enumType+`(vv) + break + } + vv, err := `, strconvPackage.Ident("ParseInt"), `(v, 10, 32) + if err != nil { + in.AddError(err) + return + } + `+name+` = `+enumType+`(vv) + case float64: + `+name+` = `+enumType+`(v) + }`) +} + func emitJSONFieldRead(g *protogen.GeneratedFile, f *protogen.Field, name string) { g.P("{") defer g.P("}") @@ -94,21 +112,7 @@ func emitJSONFieldRead(g *protogen.GeneratedFile, f *protogen.Field, name string enumType := fieldType(g, f).String() g.P("var parsedValue " + enumType) - g.P(`switch v := in.Interface().(type) { - case string: - if vv, ok := `+enumType+`_value[v]; ok { - parsedValue = `+enumType+`(vv) - break - } - vv, err := `, strconvPackage.Ident("ParseInt"), `(v, 10, 32) - if err != nil { - in.AddError(err) - return - } - parsedValue = `+enumType+`(vv) - case float64: - parsedValue = `+enumType+`(v) - }`) + emitJSONReadEnum(g, "parsedValue", enumType) template = "%s = parsedValue" case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind: emitJSONParseInteger(g, "pv", "ParseInt", 32, "int32")