Miki Tebeka
Miki Tebeka
Maybe use [functional options](https://dave.cheney.net/2014/10/17/functional-options-for-friendly-apis)
## Problem These option structs are C++ structs, they have a static Defaults function that returns a struct (not pointer). When creating an `arrow::csv::Reader` you need to pass options by...
@yonidavidson Care to weigh in on the above?
I'll probably go with `C shadow struct` for now. I'll defer SWIG for when we go all-in on it.
I'm playing around with SWIG [here](https://github.com/tebeka/swigqlite). No success so far but IMO might be the right direction.
> Cons - lets say we move our project to github actions for example so we can build in mac and windows, if we build in docker we won't be...
This might be tricker than I thought since arrow uses several other packages which are provided as shared libraries: ``` $ ldd carrow.test linux-vdso.so.1 (0x00007ffda3d86000) libarrow.so.13 => /usr/lib/x86_64-linux-gnu/libarrow.so.13 (0x00007ff3e5222000) libpthread.so.0...
One way will probably to add `libcarrow.a` to git. Maybe have a static lib for majore `GOOS`/`GOARCH` combinations.
Thinking about this. IMO we can try to have a `_cpp` direcotry with the C++ code (starts with `_` so `go build`) will ignore it. And build carrow.a in there...
Another option is to have .a per platform with specific name (e.g. `libcarrow-linux-amd64.a`) and then have `.go` files with build tag per platform that will have a `#cgo` directive per...