A D binary serialization format made for the game "Wereshift". It can be used elsewhere as a small binary format.
Tag data = Tag.parseFile("file.wsf");
writeln(data["foo"]);
writeln(data.seq[0]);
Tag myData = Tag.emptyCompound();
myData["foo"] = "bar";
myData.seq ~= new Tag("baz");
// Note: this will overwrite the contents of the file
myData.buildFile("file.wsf");
struct MyData {
int x;
string y;
}
// Works for: Structs, classes and pointers to structs
Tag tag = serializeWSF(MyData(42, "Meaning of Life"));
writeln(tag.toString());
struct MyData {
int x;
string y;
}
// Works for: Structs, classes and pointers to structs
MyData data = deserializeWSF!MyData(Tag.parseFile("importantData.wsf"));
The ignore
UDA will cause the serializer and deserializer to ignore a field.
The optional
UDA will cause the deserializer to skip a field if no data was found for it.
TODO
- Memory based streams
- C interface(?)