libusb_device, since the struct is not defined in libusb headers (only name is declared), as such the compiler doesn't know the size of the struct to allocate.
convenience wrapper. Reimplement the same trivial wrapper in Go.
Libusb wrappers
ways of calling out to cgo.
extracted from the device. Makes testing easier.
a fake libusb xfer underneath.
Change the interface a bit.
add a data() method, to avoid reaching into any xfer fields.
to sync on c.done channel before exiting.
newUSBTransfer.