Hello Jacob,

These comments are based on looking into adding Protocol Buffer as an archive. First some details on the PB format.
https://developers.google.com/protocol-buffers/docs/overview

1) It is a binary format
2) Not all D types can be serialized
3) Serialization is done by message (struct) and not by primitives
4) It defines options which can affect (de)serializing.

I am looking at using Serializer to drive (de)serialization even if that meant just jamming it in there where Orange could only read PB data it has written. Keep in mind I'm not saying these are requirements or that I know what I'm talking about, only my thoughts.

My first thought was at a minimum I could just use a function which does the complete (de)serialization of the type. Which would be great since the pbcompiler I'm using/modifying already does this.

Because of the way custom serialization I'm stopped by point 3. I didn't realize that at first so I also looked at implementing an Archive. What I notice here is

* Information is lost, specifically the attributes (more important with UDA). * I am required to implement conversions I have no implementation for.

This leaves me concluding that I'd need to implement my own Serializer, which seems to me I'm practically reimplementing most of Orange to use Orange with PB.

Does having Orange support things like PB make sense?

I think some work could be done for the Archive API as it doesn't feel like D2. Maybe we could look at locking down custom Archive/Serializer classes while the internals are worked out (would mean XML (de)serialization is available in Phobos).

Reply via email to