createCachedSelector1<S, R1, K, T> function

SelectorClass<S, K, T> createCachedSelector1<S, R1, K, T>(
  1. Selector<S, R1> selector,
  2. T combiner(
    1. R1
    ),
  3. Selector<S, K> keySelector, {
  4. Map<K, Selector<S, T>>? cacheObject,
})

Implementation

SelectorClass<S, K, T> createCachedSelector1<S, R1, K, T>(
  Selector<S, R1> selector,
  T Function(R1) 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),
          () => createSelector1(
                selector,
                combiner,
              )));
}