On Saturday, 16 September 2017 at 03:30:51 UTC, Joseph wrote:
Are there any simple direct serialization libraries where I can
mark elements of a class or struct that I want serialized with
an attribute and it will take care of all the rest(including
recursive structures, arrays, etc) then deserialize back in to
the structs?
I want something straight forward without allot of plumbing on
my end.
https://github.com/msgpack/msgpack-d
is about as simple as it can get:
import std.file;
import msgpack;
struct S { int x; float y; string z; }
void main()
{
S input = S(10, 25.5, "message");
// serialize data
ubyte[] inData = pack(input);
// write data to a file
write("file.dat", inData);
// read data from a file
ubyte[] outData = cast(ubyte[])read("file.dat");
// unserialize the data
S target = outData.unpack!S();
// verify data is the same
assert(target.x == input.x);
assert(target.y == input.y);
assert(target.z == input.z);
}