On Tuesday, 8 October 2013 at 20:50:22 UTC, Matt Soucy wrote:
Thanks for the tip - I actually did find this one when I
started using
this, however I found it on another page that hadn't been
updated (that
I ironically can't find now), so I wrongfully assumed that it
was
abandoned. I did find the github page, but I wasn't thrilled by
it.
You're thinking:
https://256.makerslocal.org/wiki/index.php/ProtocolBuffer
I've been updating it from that
Pros for opticron's:
Much more idiomatic code
Supports D1
Much better unit tests
Pros for mine (highly based on opinion):
Exposes slightly more convenient helpers
(In my opinion) slightly easier to read
Generated code looks like a POD struct, though with some
"hidden"
attributes (optional variables support .clean(), .exists(),
instead of
looking like myStruct.foo_exists())
For the D2 output I've got it really close to POD. It declares
fields as Nullable!T meaning myStruct.foo.isNull would check
availability. I was intending to distinguish required/optional
with this, but that would remove error checking (which I don't
think is there yet).
Basically, mine is much more simplistic, which is both good and
bad. I'd
like to improve mine a bit more, and the one you pointed me at
is pretty
good. It gave me some things to improve on.
Go for it, have fun.