Status of std.serialization?

angel andrey.gelman at gmail.com
Sat Jun 22 19:59:58 UTC 2019


On Friday, 21 June 2019 at 19:09:31 UTC, Jacob Carlborg wrote:
> On 2019-06-21 09:22, JN wrote:
>
>> Serialization can be tricky to make. Sure, at first you can be 
>> like
>> "just use tupleof/static foreach/_allMembers and you have your
>> serialization, D is so easy and awesome!". But then you hit 
>> some tougher
>> usecases for serialization:
>>
>> - adding serialization support for custom types (especially 
>> ones you
>> can't modify)
>> - serializing/deserializing polymorphic types by base class 
>> reference
>> - multiple formats - json/xml/yaml/binary
>
> All these are supported by Orange [1]. Although only one format 
> (XML) is currently implemented.
>
>> I think any std.serialization attempt would need to have a 
>> modular
>> approach with at least two modules. One module would be 
>> output-format
>> agnostic and responsible for annotations. Marking variables 
>> which should
>> be serialized, ones that shouldn't, ones that should be but 
>> with a
>> different name, and with some form of 
>> serializeTo/deserializeFrom
>> methods. The other module would be output format specific, 
>> something
>> like XmlSerialization, which takes the definitions created by 
>> the first
>> module and converts the data from/to the expected format.
>
> That's exactly how Orange is implemented [1]
>
> [1] http://github.com/jacob-carlborg/orange/


Did you try to promote Orange to std.serialization ?


More information about the Digitalmars-d mailing list