Serializer.overrideDeserializer

Overrides a globally registered deserializer for the given type with a deserializer local to the receiver.

The receiver will first check if a local deserializer is registered, otherwise a global deserializer will be used (if available).

Parameters

func void function

the callback that will be called when value of the given type is about to be deserialized

Examples

class Base {}
class Foo : Base {}

auto archive = new XmlArchive!();
auto serializer = new Serializer(archive);

void func (ref Base value, Serializer serializer, Data key) {
    // perform deserialization
}

Serializer.registerSerializer!(Foo)(&func);

void overrideFunc (ref Base value, Serializer serializer, Data key) {
    // this will override the above deserializer
}

serializer.overrideSerializer!(Foo)(&overrideFunc);

Meta