Skip to content

funkwerk-mobility/serialized

Repository files navigation

serialized

Build Status License Dub Version

Serialized is a library that automates encoding and decoding of D data types to JSON and XML.

It heavily relies on boilerplate to extract information about struct/class type layouts; as such automatic encoding/decoding can only be used with types that have a boilerplate constructor.

This library forks from Funkwerk's internal Utilities library. Hence while it is extensively tested, it also contains a moderate amount of legacy code. The important packages for automatic encoding and decoding are text.xml/json.Encode/Decode.

Serialized uses dxml for XML encoding/decoding and stdx_data_json for JSON encoding/decoding.

Basic usage: XML

import text.xml.Xml;

@(Xml.Element("Root"))
struct Element
{
  @(Xml.Attribute("attribute"))
  string attribute;

  mixin(GenerateThis);
}

...

import text.xml.Decode;

const xmlText = `<Root attribute="Hello World"/>`;
const value = decode!Element(xmlText);

assert(value == Element("Hello World"));

Basic usage: JSON

import text.xml.Xml;

struct Element
{
  string attribute;

  mixin(GenerateThis);
}

...

import text.json.Decode;

const jsonText = `{ "attribute": "Hello World" }`;
const value = decode!Element(jsonText);

assert(value == Element("Hello World"));

License

This project is made available under the Boost Software License 1.0.

Useful links

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages