// ForEach repeatedly calls the callback with new packfile data until // there is no more data or the callback returns an error func (pb *Packbuilder) ForEach(callback PackbuilderForeachCallback) error { data := packbuilderCbData{ callback: callback, err: nil, } err := C._go_git_packbuilder_foreach(pb.ptr, unsafe.Pointer(&data)) if err == C.GIT_EUSER { return data.err } if err < 0 { return MakeGitError(err) } return nil }
// ForEach repeatedly calls the callback with new packfile data until // there is no more data or the callback returns an error func (pb *Packbuilder) ForEach(callback PackbuilderForeachCallback) error { data := packbuilderCbData{ callback: callback, err: nil, } handle := pointerHandles.Track(&data) defer pointerHandles.Untrack(handle) runtime.LockOSThread() defer runtime.UnlockOSThread() err := C._go_git_packbuilder_foreach(pb.ptr, handle) if err == C.GIT_EUSER { return data.err } if err < 0 { return MakeGitError(err) } return nil }
func (pb *Packbuilder) forEachWrap(data *packbuilderCbData) { C._go_git_packbuilder_foreach(pb.ptr, unsafe.Pointer(data)) close(data.ch) }
func (pb *Packbuilder) forEachWrap(ch chan []byte) { C._go_git_packbuilder_foreach(pb.ptr, unsafe.Pointer(&ch)) close(ch) }