Hi Jef,
[...]
To piggyback on the following from Linus
The app just wants to get the results.
And the result is just collection of dives.
For me, the functions like below would be more than enough[1]
- iterate over dives from a device/file or stream/array of bytes (return null if no more dives) - iterate over samples from a dive (return null if no more samples) - get dive data field value (if you feel some universal data structure is not possible) - get additional dive sample data field value (assuming the basic dive sample is dive time and depth and that universal dive sample data structure is not possible)
There is need for new parser, buffer or state machine - the library should deal with it internally.
Also, above means that there shall be no parser callbacks - if my app needs them, then I can deal with callbacks between iterator calls. The same for any state my app needs... but no artificial state, which is imposed on old API users due to callbacks being part of API.
[...]
Regards,
w
[1] I am skipping the obvious stuff like getting device info, configuration, etc.