Working on new binary serialization module for phobos (hopefully)

Sean Campbell via Digitalmars-d digitalmars-d at puremagic.com
Fri Jun 5 05:21:18 PDT 2015


On Tuesday, 2 June 2015 at 10:32:25 UTC, Basile Burg wrote:
> On Monday, 1 June 2015 at 12:52:45 UTC, Sean Campbell wrote:
>> I've been working on a new serialization module for Phobos and 
>> its only reliant on 4 Phobos modules
>> it is available at 
>> https://github.com/sycam0inc/phobos/blob/master/std/experimental/serialization.d
>>
>> I would like some feedback on it
>
> We are many on this segment. Your one is "under-featured". One 
> thing i need in serialization is the use of prop getter to 
> serialize and prop setter to deserialize (*) and not only a 
> dump of the fields that __traits() can find.
using property setters and getters doesn't seem like the best idea
as they may either:
they are used to get live data e.g. setter calls hashing function
for an object that isn't part of the class/struct

property may only have setter or getter not both.

but in case you need to store anything that __traits() can find
I added support for custom serialized fields and types.
just annotate a type with @customSerialized and define
the static methods serialize[membername] and 
deserialize[membername]
where [membername] is the name of the field or have full custom
serialization by defining the static methods serializeThis
and deserializeThis.

>
> That's why i also done mine:
>
> https://github.com/BBasile/iz/blob/master/import/iz/serializer.d
>
> based on the concept of property descriptor, UDA anotations:
>
> https://github.com/BBasile/iz/blob/master/import/iz/properties.d
>
> However still not happy with it...
> Maybe with every other examples that people gave you, you'll 
> get a better idea of how to design the thing.
>
> One plus is that your code is very clean.
thank you, it's good to know
> ---
>
> (*): an obvious reason is that when you change a piece in an 
> engine you don't just drop it under the hood and it's done. You 
> have to demount and remount a lot of pieces...that's what the 
> setters do silently.



More information about the Digitalmars-d mailing list