( negative bool, buf []byte, tmp []byte, )
| 396 | } |
| 397 | |
| 398 | func decodeSmallNumber( |
| 399 | negative bool, buf []byte, tmp []byte, |
| 400 | ) (e int, m []byte, rest []byte, newTmp []byte, err error) { |
| 401 | var ex uint64 |
| 402 | var r []byte |
| 403 | if negative { |
| 404 | r, ex, err = DecodeUvarintAscending(buf[1:]) |
| 405 | } else { |
| 406 | r, ex, err = DecodeUvarintDescending(buf[1:]) |
| 407 | } |
| 408 | if err != nil { |
| 409 | return 0, nil, nil, nil, err |
| 410 | } |
| 411 | |
| 412 | idx, err := findDecimalTerminator(r) |
| 413 | if err != nil { |
| 414 | return 0, nil, nil, nil, err |
| 415 | } |
| 416 | |
| 417 | m = r[:idx] |
| 418 | if negative { |
| 419 | var mCpy []byte |
| 420 | if k := len(m); k <= len(tmp) { |
| 421 | mCpy = tmp[:k] |
| 422 | tmp = tmp[k:] |
| 423 | } else { |
| 424 | mCpy = make([]byte, k) |
| 425 | } |
| 426 | copy(mCpy, m) |
| 427 | onesComplement(mCpy) |
| 428 | m = mCpy |
| 429 | } |
| 430 | return int(-ex), m, r[idx+1:], tmp, nil |
| 431 | } |
| 432 | |
| 433 | func decodeMediumNumber( |
| 434 | negative bool, buf []byte, tmp []byte, |
no test coverage detected
searching dependent graphs…