DecodeMapLen decodes map length. Length is -1 when map is nil.
()
| 57 | |
| 58 | // DecodeMapLen decodes map length. Length is -1 when map is nil. |
| 59 | func (d *Decoder) DecodeMapLen() (int, error) { |
| 60 | c, err := d.readCode() |
| 61 | if err != nil { |
| 62 | return 0, err |
| 63 | } |
| 64 | |
| 65 | if msgpcode.IsExt(c) { |
| 66 | if err = d.skipExtHeader(c); err != nil { |
| 67 | return 0, err |
| 68 | } |
| 69 | |
| 70 | c, err = d.readCode() |
| 71 | if err != nil { |
| 72 | return 0, err |
| 73 | } |
| 74 | } |
| 75 | return d.mapLen(c) |
| 76 | } |
| 77 | |
| 78 | func (d *Decoder) mapLen(c byte) (int, error) { |
| 79 | if c == msgpcode.Nil { |