exp/cpp/export/export.go
func FindSequencesOnDisk(path *C.char, opts C.FileOption) (FileSequences, uint64, Error) {
	fileOpts := []fileseq.FileOption{}

	if opts.hiddenFiles {
		fileOpts = append(fileOpts, fileseq.HiddenFiles)
	}

	if opts.singleFiles {
		fileOpts = append(fileOpts, fileseq.SingleFiles)
	}

	switch fileseq.PadStyle(opts.padStyle) {

	case fileseq.PadStyleHash1:
		fileOpts = append(fileOpts, fileseq.FileOptPadStyleHash1)
		fmt.Println("pad style hash1")

	case fileseq.PadStyleHash4:
		fileOpts = append(fileOpts, fileseq.FileOptPadStyleHash4)
		fmt.Println("pad style hash4")

	}

	gopath := C.GoString(path)
	seqs, err := fileseq.FindSequencesOnDisk(gopath, fileOpts...)
	// fmt.Printf("export.go::DEBUG:results: %v\n", seqs)
	if err != nil {
		return nil, 0, C.CString(err.Error())
	}

	num := uint64(len(seqs))
	size := uint64(unsafe.Sizeof(C.uint64_t(0)))
	list := C.malloc(C.size_t(num * size))
	startPtr := uintptr(unsafe.Pointer(list))

	for i, seq := range seqs {
		id := sFileSeqs.Add(seq)
		// fmt.Printf("export.go::DEBUG:id: %v\n", id)
		ptr := unsafe.Pointer(startPtr + uintptr(size*uint64(i)))
		*(*C.uint64_t)(ptr) = C.uint64_t(id)
	}

	return FileSequences(list), num, nil
}
func FindSequencesOnDisk(path *C.char, opts C.FileOption) (FileSequences, uint64, Error) {
	fileOpts := []fileseq.FileOption{}

	if opts.hiddenFiles {
		fileOpts = append(fileOpts, fileseq.HiddenFiles)
	}

	if opts.singleFiles {
		fileOpts = append(fileOpts, fileseq.SingleFiles)
	}

	switch fileseq.PadStyle(opts.padStyle) {

	case fileseq.PadStyleHash1:
		fileOpts = append(fileOpts, fileseq.FileOptPadStyleHash1)
		fmt.Println("pad style hash1")

	case fileseq.PadStyleHash4:
		fileOpts = append(fileOpts, fileseq.FileOptPadStyleHash4)
		fmt.Println("pad style hash4")

	}

	gopath := C.GoString(path)
	seqs, err := fileseq.FindSequencesOnDisk(gopath, fileOpts...)
	// fmt.Printf("export.go::DEBUG:results: %v\n", seqs)
	if err != nil {
		return nil, 0, C.CString(err.Error())
	}

	num := uint64(len(seqs))
	size := uint64(unsafe.Sizeof(C.uint64_t(0)))
	list := C.malloc(C.size_t(num * size))
	startPtr := uintptr(unsafe.Pointer(list))

	for i, seq := range seqs {
		id := sFileSeqs.Add(seq)
		// fmt.Printf("export.go::DEBUG:id: %v\n", id)
		ptr := unsafe.Pointer(startPtr + uintptr(size*uint64(i)))
		*(*C.uint64_t)(ptr) = C.uint64_t(id)
	}

	return FileSequences(list), num, nil
}
//export FindSequencesOnDisk