MCPcopy Create free account
hub / github.com/apache/fory / generateMapKeyReadIndented

Function generateMapKeyReadIndented

go/fory/codegen/decoder.go:1028–1042  ·  view source on GitHub ↗

generateMapKeyReadIndented generates code to read a map key with custom indentation

(buf *bytes.Buffer, keyType types.Type, varName string, indent string)

Source from the content-addressed store, hash-verified

1026
1027// generateMapKeyReadIndented generates code to read a map key with custom indentation
1028func generateMapKeyReadIndented(buf *bytes.Buffer, keyType types.Type, varName string, indent string) error {
1029 if basic, ok := keyType.Underlying().(*types.Basic); ok {
1030 switch basic.Kind() {
1031 case types.Int:
1032 fmt.Fprintf(buf, "%s%s = int(buf.ReadInt64(err))\n", indent, varName)
1033 case types.String:
1034 fmt.Fprintf(buf, "%s%s = ctx.ReadString()\n", indent, varName)
1035 default:
1036 return fmt.Errorf("unsupported map key type: %v", keyType)
1037 }
1038 return nil
1039 }
1040 fmt.Fprintf(buf, "%sctx.ReadValue(reflect.ValueOf(&%s).Elem(), fory.RefModeTracking, true)\n", indent, varName)
1041 return nil
1042}
1043
1044// generateMapValueReadIndented generates code to read a map value with custom indentation
1045func generateMapValueReadIndented(buf *bytes.Buffer, valueType types.Type, varName string, indent string) error {

Callers 1

writeMapReadChunksFunction · 0.85

Calls 1

KindMethod · 0.80

Tested by

no test coverage detected