Property definitions

serialization $ CachingSerializer :: defaultinit
# A `Serializer` with a `cache`
abstract class CachingSerializer
	super Serializer

	# Cache of known objects
	var cache = new SerializerCache is lazy, writable

	# Link the cache of `self` with `deserializer`
	#
	# This allows reference objects by id when they are known by the other side
	# of the stream.
	#
	# Use `cache` if it is a `DuplexCache`, otherwise create a new one.
	fun link(deserializer: CachingDeserializer)
	do
		var mem = self.cache
		if not mem isa DuplexCache then mem = new DuplexCache

		self.cache = mem
		deserializer.cache = mem
	end
end
lib/serialization/caching.nit:21,1--42,3