[phobos] Interest in having a serializer in Phobos?

Andrei Alexandrescu andrei at erdani.com
Sun Aug 8 12:35:25 PDT 2010


On 08/08/2010 01:39 PM, Jacob wrote:
> On 8 aug 2010, at 17:27, Andrei Alexandrescu wrote:
>> Deserialize into Object and then cast the Object to Shape.
>
> To be able to cast it to a Shape you need to know the type at compile
> time when you deserialize it. Or you have to register a method that
> deserializes the object, which is exactly how it works now when you
> deserialize through a base class reference.

You only need to know the _base_ type statically.

>>> Or would Variant be useful here? I have not used Variant.
>>
>> Probably Variant would play a role when e.g. one wants to
>> deserialize "the next primitive type" without needing to know
>> exactly what type that is (e.g. different integer widths).
>>
>>
>> Andrei _______________________________________________ phobos
>> mailing list phobos at puremagic.com
>> http://lists.puremagic.com/mailman/listinfo/phobos
>
> I'm not sure if we understand each other correctly.

Most likely - sorry about that. Don't forget that all I'm going by is 
the tutorial, which is very brief.

> If you
> deserialize into Object you eventually need to cast it to something
> more useful and then you probably could have deserialized to that
> type in the first place. The library can deserialize through base
> class references (by register a deserialize method) but you would
> have to start with a static type somewhere, not just Object. Do you
> have a simple (code) example describing what you want to do?

I think the Shape example is simple enough to serve as a good baseline. 
Say you have a hierarchy rooted in Shape including e.g. Triangle, 
Circle, and Rectangle. Now say you have a drawing represented as a 
Shape[]. What steps do you need to take to save the drawing to disk and 
restore it later?


Andrei


More information about the phobos mailing list