So I've been playing around with the new Swift SDK, thanks Garmin for this! I added the new SDK to the benchmarking project Brice posted on GitHub. Not as fast as C, but happy with the results!
I was working on creating a general parser to test the SDK and become familiar with it. I'm still figuring out the best approach*, but I've run into questions on the subfields. I'm following the approach used in the CSV example in the java SDK. In the MesgCSVWriterBase.getValueString() function, the for loop uses fieldBase.getNumValues() to know how many subfields it's dealing with. In the SwiftSDK, the FieldBase.numValues computed property is not public, nor is there any kind of getValues() to get a hold of the array to be able to loop through it.
Its easy enough to extend the class in Swift and add a new method to get access to this, but so far every time I've run into something like this I realized there was a different way that seemed to be the "intended" path. So this is making me wonder if I'm missing something and there's a better approach to a generic parser.
Thanks for any insights.
* specific Mesg types have getter methods that return values already resolved to the respective enum value, but every Mesg type has differently named getter functions so using them is not very generic.