ComplexCodecs use direct converters instead of a value transient converter, instead of supported values being converted to a byte-arity transient form, they are directly converted to the codecs main type. This adds some overhead to the conversion, but it now allows reference types to be in the conversion pipeline.
PreferValueTupleType added to the config for clients, determining whether or not to deserialize to System.ValueTuple if no concrete type information is supplied; opposed to TransientTuple
Re-implemented current complex codecs to follow new converter implementation.
Implemented Serialize on TupleCodec and ObjectCodec for tuple and namedtuple respectfully
Summary
This PR implements tuple serialization for globals and 3.0 tuple arguments.
Changes summary
TupleCodec
is now a complex codec with the treeComplexCodec
s use direct converters instead of a value transient converter, instead of supported values being converted to a byte-arity transient form, they are directly converted to the codecs main type. This adds some overhead to the conversion, but it now allows reference types to be in the conversion pipeline.PreferValueTupleType
added to the config for clients, determining whether or not to deserialize toSystem.ValueTuple
if no concrete type information is supplied; opposed toTransientTuple
Serialize
onTupleCodec
andObjectCodec
fortuple
andnamedtuple
respectfully