(mb *ast.StructMember, prefix string, hasRet bool)
| 540 | } |
| 541 | |
| 542 | func (g *GenGo) genWriteMap(mb *ast.StructMember, prefix string, hasRet bool) { |
| 543 | if !mb.Require { |
| 544 | g.P("if len(", g.genVariableName(prefix, mb.Key), ") > 0 {") |
| 545 | defer g.P("}") |
| 546 | } |
| 547 | |
| 548 | tag := strconv.Itoa(int(mb.Tag)) |
| 549 | vc := strconv.Itoa(g.vc) |
| 550 | g.vc++ |
| 551 | errStr := errString(hasRet) |
| 552 | g.P("err = buf.WriteHead(codec.MAP, ", tag, ")") |
| 553 | g.P(errStr) |
| 554 | g.P("err = buf.WriteInt32(int32(len(", g.genVariableName(prefix, mb.Key), ")), 0)") |
| 555 | g.P(errStr) |
| 556 | g.P("for k", vc, ", v", vc, " := range ", g.genVariableName(prefix, mb.Key), " {") |
| 557 | // for _, v := range can nesting for _, v := range,does not conflict, support multidimensional arrays |
| 558 | |
| 559 | dummy := &ast.StructMember{ |
| 560 | Require: true, |
| 561 | Type: mb.Type.TypeK, |
| 562 | Key: "k" + vc, |
| 563 | } |
| 564 | g.genWriteVar(dummy, "", hasRet) |
| 565 | |
| 566 | dummy = &ast.StructMember{ |
| 567 | Tag: 1, |
| 568 | Require: true, |
| 569 | Type: mb.Type.TypeV, |
| 570 | Key: "v" + vc, |
| 571 | } |
| 572 | g.genWriteVar(dummy, "", hasRet) |
| 573 | |
| 574 | g.P("}") |
| 575 | } |
| 576 | |
| 577 | func (g *GenGo) genWriteStruct(mb *ast.StructMember, prefix string, hasRet bool) { |
| 578 | tag := strconv.Itoa(int(mb.Tag)) |
no test coverage detected