On 16.11.2011 21:15, Kiith-Sa wrote:
...
GitHub: https://github.com/kiith-sa/D-YAML
Docs : dyaml.alwaysdata.net/docs
You can get D:YAML 0.3 here: https://github.com/kiith-sa/D-YAML/downloads
Great, I've been looking into YAML lately. Would be interesting to see
how the speed of your library compares to Tango's XML parser. Maybe
I'll do some benchmarking.
I think your API could be simplified in some places. I rewrote one of
your examples:
---
bool constructMyStructScalar(ref Node node, out MyStruct result, out
string customError)
{
auto parts = node.as!string().split(":");
try
{
result = MyStruct(to!int(parts[0]), to!int(parts[1]),
to!int(parts[2]));
return true;
}
catch(Exception e)
{
return false;
}
}
---
If the value is invalid, you just return false and let the library take
care of the rest. If you want to give detailed info about the error,
assign to customError. The code calling this function would throw an
exception that contains the standard line and column info, plus your
custom message.