(s string, depth int)
| 107 | } |
| 108 | |
| 109 | func (dec *decoder) decode(s string, depth int) any { |
| 110 | dec.align(alignment(typeFor(s))) |
| 111 | switch s[0] { |
| 112 | case 'y': |
| 113 | if _, err := dec.in.Read(dec.y[:]); err != nil { |
| 114 | panic(err) |
| 115 | } |
| 116 | dec.pos++ |
| 117 | return dec.y[0] |
| 118 | case 'b': |
| 119 | switch dec.decodeU() { |
| 120 | case 0: |
| 121 | return false |
| 122 | case 1: |
| 123 | return true |
| 124 | default: |
| 125 | panic(FormatError("invalid value for boolean")) |
| 126 | } |
| 127 | case 'n': |
| 128 | dec.read2buf(2) |
| 129 | dec.pos += 2 |
| 130 | return int16(dec.order.Uint16(dec.buf)) |
| 131 | case 'i': |
| 132 | dec.read2buf(4) |
| 133 | dec.pos += 4 |
| 134 | return int32(dec.order.Uint32(dec.buf)) |
| 135 | case 'x': |
| 136 | dec.read2buf(8) |
| 137 | dec.pos += 8 |
| 138 | return int64(dec.order.Uint64(dec.buf)) |
| 139 | case 'q': |
| 140 | dec.read2buf(2) |
| 141 | dec.pos += 2 |
| 142 | return dec.order.Uint16(dec.buf) |
| 143 | case 'u': |
| 144 | return dec.decodeU() |
| 145 | case 't': |
| 146 | dec.read2buf(8) |
| 147 | dec.pos += 8 |
| 148 | return dec.order.Uint64(dec.buf) |
| 149 | case 'd': |
| 150 | dec.binread(&dec.d) |
| 151 | dec.pos += 8 |
| 152 | return dec.d |
| 153 | case 's': |
| 154 | length := dec.decodeU() |
| 155 | p := int(length) + 1 |
| 156 | dec.read2buf(p) |
| 157 | dec.pos += p |
| 158 | return dec.conv.String(dec.buf[:len(dec.buf)-1]) |
| 159 | case 'o': |
| 160 | return ObjectPath(dec.decode("s", depth).(string)) |
| 161 | case 'g': |
| 162 | length := dec.decode("y", depth).(byte) |
| 163 | p := int(length) + 1 |
| 164 | dec.read2buf(p) |
| 165 | dec.pos += p |
| 166 | sig, err := ParseSignature( |
no test coverage detected