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