MCPcopy Create free account
hub / github.com/auxten/postgresql-parser / EncodeUvarintDescending

Function EncodeUvarintDescending

pkg/util/encoding/encoding.go:354–387  ·  view source on GitHub ↗

EncodeUvarintDescending encodes the uint64 value so that it sorts in reverse order, from largest to smallest.

(b []byte, v uint64)

Source from the content-addressed store, hash-verified

352// EncodeUvarintDescending encodes the uint64 value so that it sorts in
353// reverse order, from largest to smallest.
354func 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.
390func highestByteIndex(v uint64) int {

Callers 2

EncodeBitArrayDescendingFunction · 0.85
encodeVarExpNumberFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…