|
|
- package common
-
- import (
- "encoding/binary"
- "sort"
- )
-
- // Sort for []uint64
-
- type Uint64Slice []uint64
-
- func (p Uint64Slice) Len() int { return len(p) }
- func (p Uint64Slice) Less(i, j int) bool { return p[i] < p[j] }
- func (p Uint64Slice) Swap(i, j int) { p[i], p[j] = p[j], p[i] }
- func (p Uint64Slice) Sort() { sort.Sort(p) }
-
- func SearchUint64s(a []uint64, x uint64) int {
- return sort.Search(len(a), func(i int) bool { return a[i] >= x })
- }
-
- func (p Uint64Slice) Search(x uint64) int { return SearchUint64s(p, x) }
-
- //--------------------------------------------------------------------------------
-
- func PutUint64LE(dest []byte, i uint64) {
- binary.LittleEndian.PutUint64(dest, i)
- }
-
- func GetUint64LE(src []byte) uint64 {
- return binary.LittleEndian.Uint64(src)
- }
-
- func PutUint64BE(dest []byte, i uint64) {
- binary.BigEndian.PutUint64(dest, i)
- }
-
- func GetUint64BE(src []byte) uint64 {
- return binary.BigEndian.Uint64(src)
- }
-
- func PutInt64LE(dest []byte, i int64) {
- binary.LittleEndian.PutUint64(dest, uint64(i))
- }
-
- func GetInt64LE(src []byte) int64 {
- return int64(binary.LittleEndian.Uint64(src))
- }
-
- func PutInt64BE(dest []byte, i int64) {
- binary.BigEndian.PutUint64(dest, uint64(i))
- }
-
- func GetInt64BE(src []byte) int64 {
- return int64(binary.BigEndian.Uint64(src))
- }
-
- // IntInSlice returns true if a is found in the list.
- func IntInSlice(a int, list []int) bool {
- for _, b := range list {
- if b == a {
- return true
- }
- }
- return false
- }
|