Unserializer class is the complement to the
Serializer class. It parses
String and creates objects from the contained data.
This class can be used in two ways:
- create a
new Unserializer()instance with a given serialization String, then call its
unserialize()method until all values are extracted
Unserializer.run()to unserialize a single value from a given String
The specification of the serialization format can be found here: https://haxe.org/manual/serialization/format
staticDEFAULT_RESOLVER:TypeResolver = new DefaultResolver()
This value can be set to use custom type resolvers.
A type resolver finds a
Enum instance from a given
By default, the Haxe
Type Api is used.
A type resolver must provide two methods:
resolveClass(name:String):Class<Dynamic>is called to determine a
`Class` from a class name
resolveEnum(name:String):Enum<Dynamic>is called to determine an
`Enum` from an enum name
This value is applied when a new
Unserializer instance is created.
Changing it afterwards has no effect on previously created instances.
Creates a new Unserializer instance, with its internal buffer
This does not parse
buf immediately. It is parsed only when calls to
this.unserialize are made.
Each Unserializer instance maintains its own cache.
Unserializes the next part of
this Unserializer instance and returns
the according value.
This function may call
this.resolver.resolveClass to determine a
Class from a String, and
this.resolver.resolveEnum to determine an
Enum from a String.
this Unserializer instance contains no more or invalid data, an
exception is thrown.
This operation may fail on structurally valid data if a type cannot be resolved or if a field cannot be set. This can happen when unserializing Strings that were serialized on a different Haxe target, in which the serialization side has to make sure not to include platform-specific data.
Classes are created from
Type.createEmptyInstance, which means their
constructors are not called.