(val reflect.Value)
| 547 | } |
| 548 | |
| 549 | func (e *Encoder) encodeList(val reflect.Value) error { |
| 550 | if err := e.writeByte(e.tagFor(val.Type().Elem())); err != nil { |
| 551 | return err |
| 552 | } |
| 553 | |
| 554 | if err := e.writeInt(int32(val.Len())); err != nil { |
| 555 | return err |
| 556 | } |
| 557 | |
| 558 | for i := 0; i < val.Len(); i++ { |
| 559 | f := val.Index(i) |
| 560 | switch val.Type().Elem().Kind() { |
| 561 | case reflect.Bool: |
| 562 | |
| 563 | b := f.Bool() |
| 564 | if err := e.writeByte(*(*int8)(unsafe.Pointer(&b))); err != nil { |
| 565 | return err |
| 566 | } |
| 567 | case reflect.Int8: |
| 568 | if err := e.writeByte(int8(f.Int())); err != nil { |
| 569 | return err |
| 570 | } |
| 571 | case reflect.Uint8: |
| 572 | if err := e.writeByte(int8(f.Uint())); err != nil { |
| 573 | return err |
| 574 | } |
| 575 | case reflect.Int16: |
| 576 | if err := e.writeShort(int16(f.Int())); err != nil { |
| 577 | return err |
| 578 | } |
| 579 | case reflect.Uint16: |
| 580 | if err := e.writeShort(int16(f.Uint())); err != nil { |
| 581 | return err |
| 582 | } |
| 583 | case reflect.Int32: |
| 584 | if err := e.writeInt(int32(f.Int())); err != nil { |
| 585 | return err |
| 586 | } |
| 587 | case reflect.Uint32: |
| 588 | if err := e.writeInt(int32(f.Uint())); err != nil { |
| 589 | return err |
| 590 | } |
| 591 | case reflect.Int64: |
| 592 | if err := e.writeLong(f.Int()); err != nil { |
| 593 | return err |
| 594 | } |
| 595 | case reflect.Uint64: |
| 596 | if err := e.writeLong(int64(f.Uint())); err != nil { |
| 597 | return err |
| 598 | } |
| 599 | case reflect.String: |
| 600 | if err := e.writeString(f.String()); err != nil { |
| 601 | return err |
| 602 | } |
| 603 | case reflect.Slice, reflect.Array: |
| 604 | switch f.Type().Elem().Kind() { |
| 605 | case reflect.Uint8, reflect.Int8: |
| 606 | if err := e.writeInt(int32(f.Len())); err != nil { |
no test coverage detected