EncodeUvarintDescending encodes the uint64 value so that it sorts in reverse order, from largest to smallest.
(b []byte, v uint64)
| 352 | // EncodeUvarintDescending encodes the uint64 value so that it sorts in |
| 353 | // reverse order, from largest to smallest. |
| 354 | func EncodeUvarintDescending(b []byte, v uint64) []byte { |
| 355 | switch { |
| 356 | case v == 0: |
| 357 | return append(b, IntMin+8) |
| 358 | case v <= 0xff: |
| 359 | v = ^v |
| 360 | return append(b, IntMin+7, byte(v)) |
| 361 | case v <= 0xffff: |
| 362 | v = ^v |
| 363 | return append(b, IntMin+6, byte(v>>8), byte(v)) |
| 364 | case v <= 0xffffff: |
| 365 | v = ^v |
| 366 | return append(b, IntMin+5, byte(v>>16), byte(v>>8), byte(v)) |
| 367 | case v <= 0xffffffff: |
| 368 | v = ^v |
| 369 | return append(b, IntMin+4, byte(v>>24), byte(v>>16), byte(v>>8), byte(v)) |
| 370 | case v <= 0xffffffffff: |
| 371 | v = ^v |
| 372 | return append(b, IntMin+3, byte(v>>32), byte(v>>24), byte(v>>16), byte(v>>8), |
| 373 | byte(v)) |
| 374 | case v <= 0xffffffffffff: |
| 375 | v = ^v |
| 376 | return append(b, IntMin+2, byte(v>>40), byte(v>>32), byte(v>>24), byte(v>>16), |
| 377 | byte(v>>8), byte(v)) |
| 378 | case v <= 0xffffffffffffff: |
| 379 | v = ^v |
| 380 | return append(b, IntMin+1, byte(v>>48), byte(v>>40), byte(v>>32), byte(v>>24), |
| 381 | byte(v>>16), byte(v>>8), byte(v)) |
| 382 | default: |
| 383 | v = ^v |
| 384 | return append(b, IntMin, byte(v>>56), byte(v>>48), byte(v>>40), byte(v>>32), |
| 385 | byte(v>>24), byte(v>>16), byte(v>>8), byte(v)) |
| 386 | } |
| 387 | } |
| 388 | |
| 389 | // highestByteIndex returns the index (0 to 7) of the highest nonzero byte in v. |
| 390 | func highestByteIndex(v uint64) int { |
no outgoing calls
no test coverage detected
searching dependent graphs…