(idx int)
| 73 | } |
| 74 | |
| 75 | func (e *Encoder) encodeInternedStringIndex(idx int) error { |
| 76 | if idx <= math.MaxUint8 { |
| 77 | if err := e.writeCode(msgpcode.FixExt1); err != nil { |
| 78 | return err |
| 79 | } |
| 80 | return e.write1(byte(internedStringExtID), uint8(idx)) |
| 81 | } |
| 82 | |
| 83 | if idx <= math.MaxUint16 { |
| 84 | if err := e.writeCode(msgpcode.FixExt2); err != nil { |
| 85 | return err |
| 86 | } |
| 87 | return e.write2(byte(internedStringExtID), uint16(idx)) |
| 88 | } |
| 89 | |
| 90 | if uint64(idx) <= math.MaxUint32 { |
| 91 | if err := e.writeCode(msgpcode.FixExt4); err != nil { |
| 92 | return err |
| 93 | } |
| 94 | return e.write4(byte(internedStringExtID), uint32(idx)) |
| 95 | } |
| 96 | |
| 97 | return fmt.Errorf("msgpack: interned string index=%d is too large", idx) |
| 98 | } |
| 99 | |
| 100 | //------------------------------------------------------------------------------ |
| 101 |
no test coverage detected