On 2012-03-19 21:44, Andrej Mitrovic wrote:

When I implemented NonSerialized for Vladimir's json library he made a
suggestion to simply create enums of each field that is not to be
serialized and encode it as "fieldname_nonSerialized". That would
enable using a NonSerialized mixin multiple times.

I've yet to implement it in that way, I ran into some odd bugs but
I'll have a look at this soon. My implementation used a hash lookup
table for the fields, but using enums would make the code even
simpler. Basically:

struct Foo
{
     int x;
     string name;
     mixin(NonSerialized!name);
     string lastName;
     mixin(NonSerialized!lastName);
}

and this would expand to:
struct Foo
{
     int x;
     string name;
     enum name_nonSerialized;
     string lastName;
     enum lastName_nonSerialized;
}

So all you'd have to do is use compile-time introspection and a little
bit of string processing to figure out if a field should be serialized
or not.

Yeah, but that will complicate the retrieval of the information.

--
/Jacob Carlborg

Reply via email to