func readUintSlice()

in util.go [52:75]


func readUintSlice(r io.Reader) (v []uint64, n int64, err error) {
	// read length
	var length uint64
	err = binary.Read(r, binary.LittleEndian, &length)
	if err != nil {
		return
	}
	n += 8
	v = make(unpacked, length)
	if isLittleEndian {
		// ~15x faster
		data := unsafeUint64SliceToBytes(v)
		var np int
		np, err = r.Read(data)
		n += int64(np)
	} else {
		err = binary.Read(r, binary.LittleEndian, v)
		if err != nil {
			return
		}
		n += 8 * int64(length)
	}
	return
}