std.serialization: pre-voting review / discussion

ilya-stromberg ilya-stromberg-2009 at yandex.ru
Wed Sep 4 05:37:51 PDT 2013


On Wednesday, 14 August 2013 at 09:26:55 UTC, Jacob Carlborg 
wrote:
> On 2013-08-14 11:17, Tove wrote:
>> I find the newstyle both more intuitive and you also more dry 
>> not
>> duplicating the identifier: "int b; mixin NonSerialized!(b)"
>>
>> @nonSerialized struct Foo
>> {
>>     int a;
>>     int b;
>>     int c;
>> }
>>
>> struct Bar
>> {
>>     int a;
>>     int b;
>>     @nonSerialized int c;
>> }
>
> Absolutely.

Jacob, can you add "@serializationName(string name)" UDA?
I saw the custom serialization example from documentation:
https://dl.dropboxusercontent.com/u/18386187/docs/std.serialization/std_serialization_serializable.html#.Serializable

class Foo : Serializable
{
     int a;

     void toData (Serializer serializer, Serializer.Data key)
     {
         serializer.serialize(a, "b");
     }

  void fromData (Serializer serializer, Serializer.Data key)
  {
      a = serializer.deserialize!(int)("b");
  }
}

Whith "@serializationName(string name)" attribute example should 
look like this:

class Foo
{
     @serializationName("b")
     int a;
}

Or for class/struct name:

@serializationName("Bar")
class Foo
{
     int a;
}

I think it's easier to use than custom serialization. And 
"@nonSerialized" UDA used for same purpose - simplify 
serialization customization.

Is it possible to implement?


More information about the Digitalmars-d mailing list