Skip to content
A D binary serialization format
D
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
source/wsf
.gitignore
LICENSE
README.md
dub.sdl

README.md

WereShift Format

A D binary serialization format made for the game "Wereshift". It can be used elsewhere as a small binary format.

Parsing file

Tag data = Tag.parseFile("file.wsf");
writeln(data["foo"]);
writeln(data.seq[0]);

Building file

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");

Serialize struct

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());

Deserialize

struct MyData {
    int x;
    string y;
}

// Works for: Structs, classes and pointers to structs
MyData data = deserializeWSF!MyData(Tag.parseFile("importantData.wsf"));

ignore & optional

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.

Notes

TODO

  • Memory based streams
  • C interface(?)
You can’t perform that action at this time.