apache / arrow-nanoarrow

Helpers for Arrow C Data & Arrow C Stream interfaces
https://arrow.apache.org/nanoarrow
Apache License 2.0
149 stars 34 forks source link

refactor: Separate components into folders under src/nanoarrow #536

Closed paleolimbot closed 1 week ago

paleolimbot commented 1 week ago

The number of files in src/nanoarrow had accumulated quite a bit, which wasn't exactly a problem, but the files did have confusingly verbose names for historical reasons (mostly that the IPC and Device libraries originated elsewhere). This PR moves the nanoarrow target sources to src/nanoarrow/common, the nanoarrow_ipc target sources to src/nanoarrow/ipc, the nanoarrow_device target sources to src/nanoarrow/device, and the tests for the testing helpers to src/nanoarrow/testing (in the future this will/should be a nanoarrow_testing target).

I did leave the user-facing headers in src/nanoarrow, which makes a slightly cleaner transition between the "bundled" and CMake/Meson subproject builds (i.e., one always just does #include "nanoarrow/nanoarrow.h")