Request for pre-review: std.serialization/orange
Jacob Carlborg
doob at me.com
Sat Oct 1 03:50:52 PDT 2011
On 2011-10-01 05:00, Robert Jacques wrote:
> I agree, which is why I suggested lookup should have some granuality.
> i.e. that there is both a global store of serialization methods and a
> per instance store of serialization methods. Lookup would first look in
> the local store before defaulting to the global store. But this should
> be a separate pair of functions.
Aah, now I get it. That's a good idea. The question is what to name the
two functions. Yet another use case for overloading methods on static.
> I'm sorry, I was thinking about archive types (i.e. JSON vs XML) and
> somehow thinking that the Serializers would be different for each. (I
> was thinking that the serializer was templated on the archive for some
> reason.)
Ok, no problem.
> Both
>
> T deserialize (T)();
> T deserialize (T)(string key);
>
> have the following example:
>
> class Foo
> {
> int a;
>
> void fromData (Serializer serializer, Serializer.Data key)
> {
> a = serializer!(int)("a");
> }
> }
No, "T deserialize (T)(string key)" has:
a = serializer!(int)("a");
And "T deserialize (T)()" has:
a = serializer!(int)();
Both are correct. This is a complete example of using one of these
methods: https://github.com/jacob-carlborg/orange/blob/master/tests/Custom.d
Let me know if anything is confusing.
--
/Jacob Carlborg
More information about the Digitalmars-d
mailing list