in packed.go [199:219]
func (r packedDiskReader) Read(ix uint64) (val uint64, err error) {
return getValFromPackedIx(ix, r.bits, func(off uint64, cnt uint64) ([]uint64, error) {
space := make([]uint64, cnt)
raw := unsafeUint64SliceToBytes(space)
n, err := r.r.ReadAt(raw, int64(r.start+off*8))
if err != nil {
return nil, err
}
if uint64(n) != 8*cnt {
return nil, fmt.Errorf("short read: %d/%d", n, 8*cnt)
}
if !isLittleEndian {
for i := uint64(0); i < cnt; i++ {
space[i] = binary.LittleEndian.Uint64(raw[cnt*8 : (cnt+1)*8])
}
}
return space, err
})
}