WIP: Use ArrayHandleMultiplexer in VariantArrayHandle::CastAndCall
The previous behavior of VariantArrayHandle::CastAndCall
was to
identify all possible ArrayHandle
s to try and call the provided
functor with each one. This change creates an ArrayHandleMultiplexer
for each value type so that the functor need only be called once for
each value type rather than once for every value-storage type pair.
This results in more complex array types, but should result in fewer total code paths.