github.com/segmentio/parquet-go@v0.0.0-20230712180008-5d42db8f0d47/internal/bitpack/unpack.go (about) 1 package bitpack 2 3 // PaddingInt32 is the padding expected to exist after the end of input buffers 4 // for the UnpackInt32 algorithm to avoid reading beyond the end of the input. 5 const PaddingInt32 = 16 6 7 // PaddingInt64 is the padding expected to exist after the end of input buffers 8 // for the UnpackInt32 algorithm to avoid reading beyond the end of the input. 9 const PaddingInt64 = 32 10 11 // UnpackInt32 unpacks 32 bit integers from src to dst. 12 // 13 // The function unpacked len(dst) integers, it panics if src is too short to 14 // contain len(dst) values of the given bit width. 15 func UnpackInt32(dst []int32, src []byte, bitWidth uint) { 16 _ = src[:ByteCount(bitWidth*uint(len(dst))+8*PaddingInt32)] 17 unpackInt32(dst, src, bitWidth) 18 } 19 20 // UnpackInt64 unpacks 64 bit integers from src to dst. 21 // 22 // The function unpacked len(dst) integers, it panics if src is too short to 23 // contain len(dst) values of the given bit width. 24 func UnpackInt64(dst []int64, src []byte, bitWidth uint) { 25 _ = src[:ByteCount(bitWidth*uint(len(dst))+8*PaddingInt64)] 26 unpackInt64(dst, src, bitWidth) 27 }