On Sunday, 17 February 2013 at 21:18:12 UTC, Walter Bright wrote:
On 2/17/2013 12:51 PM, Jacob Carlborg wrote:
I just stripped out all D1 and Tango related code from Orange. D1/Tango is still supported in the d1 branch. Hopefully this will make it easier to integrate into
Phobos.

It also now supports UDA's for indicating a field/class/struct shouldn't be
serialized:

class Foo
{
    @nonSerialized int a;
}

@nonSerialized class Bar { }

Hmm, shouldn't it be the other way around - marking the ones to be serialized?

The vast majority of objects can be serialized without any problems. Those that can't usually aren't referenced in objects that are being serialized and you know what they are ahead of time. Forcing opt-in serialization would make every single library out there at the moment unusable with std.serialize. In a Component system for example, you won't know ahead of time what needs to be serialized, and a single object not being marked Serialized will completely prevent serialization.

That being said, personally I think serialization in Phobos has been delayed far too long for something that's so important to many programs. I'd be happy with either opt-in or opt-out, however I believe that there should be a way to customize how an object gets serialized, such as an onSerialize method or interface.

Reply via email to