module nxt.typedoc; /** Returns: Documentation String for Enumeration Type $(D EnumType). */ string enumDoc(EnumType, string separator = `|`)() @safe pure nothrow { /* import std.traits: EnumMembers; */ /* return EnumMembers!EnumType.join(separator); */ /* auto subsSortingNames = EnumMembers!EnumType; */ auto x = __traits(allMembers, EnumType); string doc = ``; foreach (ix, name; x) { if (ix >= 1) { doc ~= separator; } doc ~= name; } return doc; } /** Returns: Default Documentation String for value $(D a) of for Type $(D T). */ string defaultDoc(T)(in T a) @safe pure { import std.conv: to; return (` (type:` ~ T.stringof ~ `, default:` ~ to!string(a) ~ `).`) ; }