A wrapper around a
Factory
that assumes the schema parameter never changes.
Factory
objects take the schema as a parameter, as often the returned type varies by
schema (e.g. sometimes the returned-type is a list that must be in schema-field order). However
in many cases it's known by the caller that the schema parameter is always the same across all
calls to create. In these cases we want to save the cost of Schema comparison (which can be
significant for larger schemas) on each lookup. This wrapper caches the value returned by the
inner factory, so the schema comparison only need happen on the first lookup.