Loads the archive's data from a file.
Loads the given data and modifies Archive.root to represent this data.
Saves the archive's data to a file.
Saves the data in Archive.root into memory.
A helpful alternative to saveToMemory, where the data is casted to a const(char[]), then passed to std.utf.validate, before being returned.
The root of the archive's data.
An archive can be seen as a serialiser/deserialiser for ArchiveObjects.
Essentially, this class is used to provide the ability to write and read objects into/from a certain format, e.g. SDLang, XML, ini maybe(if you try hard enough), and custom binary formats.
The reason that archives exists is primarily so only one serialiser/deserialiser for more complex types (structs/classes) has to be written, as ArchiveObject is flexible enough to represent mostly everything you'd need to, it is then up to the Archive to provide the actual format to store it in.
For example, the serialiser/deserialiser provided by default could be used to serialise/deserialise to SDLang, XML, binary, etc. without any extra effort, since all of those details are left up to the Archive, all the serialiser has to do is modify the archive's Archive.root to what it wants.
The base class for an archive.