Constructor
Exception thrown when the file that was loaded is incomplete. Will soon be unused
Writes a map to a file.
Writes a map to an IO device.
Writes a map to a file.
Writes a map to an IO device.
loads dumped map content from the file system
loads dumped map content from the file system
Loads dumped map content from the file system
Loads dumped map content from the file system
Pair of buffers used for conversion
Takes a type tuple and transforms it into the same type tuple but with the types being pointers to the original types.
Helper template for version handling. Takes a tuple of types and changes the type and position index to what ever it has as .StructPrevious member.
Delegate used to add new values from a map
Delegate used to put values in a map
Evaluates to the fnv1 hash of the types that make up the struct. If S is no struct, mangled name of the type is used.
Offers functionality to load/dump the content of Maps (optionally of anything actually, using the delegate version of the dump/load functions).
Features include backwards compability with auto-conversion to the requested struct version. It makes use of the same functions that the StructLoader/StructDumper use for the conversion.
This means that structs used with this function should have the const member StructVersion as well as an alias to the old version (if one exists) called "StructPrevious" (this is identical to the requirements for vesioned struct in the StructDumper/Loader).
Additionally, a validation using the struct hash is done too, to exclude potential human errors while setting up the version info.
If you have a map saved in the old version (2) and at the same time updated the struct definition of that map, you can still take advantage of the auto-conversion functionality if you simply define the old struct version as version 0 and your current one as version 1. The loader is smart enough to figure out the old version by hash and converts it to the newer one.
Usage Example: