func (u *Unpacker) FetchBytes(n uint64, bytes *[]byte) *Unpacker {
	return u.errFilter(func() {
		*bytes, u.err = u.ShiftBytes(n)
	})
}
FetchBytes read n bytes and set to bytes.
package binpacker
import (
	"encoding/binary"
	"fmt"
	"io"
	"math"
	"unsafe"
)
type Unpacker struct {
	reader io.Reader
	endian binary.ByteOrder
	err    error
}
func NewUnpacker(endian binary.ByteOrder, reader io.Reader) *Unpacker {
	return &Unpacker{
		reader: reader,
		endian: endian,
	}
}
func (u *Unpacker) Error() error {
	return u.err
}
func (u *Unpacker) ShiftByte() (byte, error) {
	buffer := make([]byte, 1)
	_, err := io.ReadFull(u.reader, buffer)
	return buffer[0], err
}
func (u *Unpacker) FetchByte(b *byte) *Unpacker {
	return u.errFilter(func() {
		*b, u.err = u.ShiftByte()
	})
}
func (u *Unpacker) ShiftBytes(_n uint64) ([]byte, error) {
	buf := make([]byte, _n)
	_, err := io.ReadFull(u.reader, buf)
	return buf, err
}