Releases: LTLA/rds2cpp
Releases · LTLA/rds2cpp
v1.3.1
v1.3.0
- Update to the latest byteme interfaces.
- Streamlined
ParseRdsOptionsto use a general-purpose buffer size. - Added buffer size and parallelization options to
write_rds(). - Symbols are now represented by
SymbolIndexin all contexts, including attribute names, pairlist tags, environment variable names, etc. This improves memory efficiency at the cost of an extra level of indirection to fetch the actual string/encoding fromRdsFile::symbols. - Added the
register_symbol()function to easily register new symbols prior to writing RDS files. StringVectornow contains a vector ofStrings, each of which contain the (optional) string value and its encoding. If the string value is unset, this indicates that the string was missing.- All
RObjectsubclasses are nowfinalto encourage devirtualization. - Removed all methods from all struct definitions, as structs are intended to be passive data carriers with no methods.
- Refactored representation of attributes to a
std::vectorofAttributeobjects, each of which has a name and value. The same applies withEnvironments, which now contain astd::vectorofEnvironmentVariableobjects;PairLists, which now contain astd::vectorofPairListElements; andLanguageobjects, which now contain astd::vectorofLanguageArgumentobjects. - Support reading and writing of RDA files via
parse_rda()andwrite_rda(). This produces anRdaFileobject that contains a vector ofRdaObjectinstances, each of which contains the name and value of each object saved within the RDA file.