On Sunday, 6 August 2017 at 15:18:29 UTC, Jacob Carlborg wrote:
Wow, that's pretty cool :). One downside I see is that all tags are currently hard coded. This won't work for XML or if using new/custom tags that the library doesn't know about yet.

That's easily amendable:

struct ElementBuilder {
    auto opDispatch(string name, Args...)(Args args) const {
        return Element(name)(args);

enum xml = ElementBuilder();

unittest {
    enum a = xml.foo(xml.bar("baz"), xml.qux(123));
assert(a.toString == "<foo><bar>baz</bar><qux>123</qux></foo>");


Reply via email to