createCachedSelector2<S, R1, R2, K, T> function

SelectorClass<S, K, T> createCachedSelector2<S, R1, R2, K, T>(
  1. Selector<S, R1> selector1,
  2. Selector<S, R2> selector2,
  3. T combiner(
    1. R1,
    2. R2
    ),
  4. Selector<S, K> keySelector, {
  5. Map<K, Selector<S, T>>? cacheObject,
})

Implementation

SelectorClass<S, K, T> createCachedSelector2<S, R1, R2, K, T>(
  Selector<S, R1> selector1,
  Selector<S, R2> selector2,
  T Function(R1, R2) combiner,
  Selector<S, K> keySelector, {
  Map<K, Selector<S, T>>? cacheObject,
}) {
  final cache = cacheObject ?? FlatMapCache<K, Selector<S, T>>();
  return SelectorClass(
      cache,
      (S state) => cache.putIfAbsent(
          keySelector(state),
          () => createSelector2(
                selector1,
                selector2,
                combiner,
              )));
}