reduce<C extends Object, P1 extends Object, P2 extends Object, P3 extends Object, P4 extends Object, P5 extends Object> static method

ChildPod<Object, C> reduce<C extends Object, P1 extends Object, P2 extends Object, P3 extends Object, P4 extends Object, P5 extends Object>(
  1. TResponderFn5<P1, P2, P3, P4, P5> responder,
  2. TReducerFn5<C, P1, P2, P3, P4, P5> reducer
)

Reduces 5 Pods into a ChildPod.

Implementation

static ChildPod<Object, C> reduce<
    C extends Object,
    P1 extends Object,
    P2 extends Object,
    P3 extends Object,
    P4 extends Object,
    P5 extends Object>(
  TResponderFn5<P1, P2, P3, P4, P5> responder,
  TReducerFn5<C, P1, P2, P3, P4, P5> reducer,
) {
  late (
    GenericPod<P1>,
    GenericPod<P2>,
    GenericPod<P3>,
    GenericPod<P4>,
    GenericPod<P5>,
  ) cached;
  return ChildPod<Object, C>(
    responder: () {
      cached = responder();
      return [cached.$1, cached.$2, cached.$3, cached.$4, cached.$5];
    },
    reducer: (_) =>
        reducer(cached.$1, cached.$2, cached.$3, cached.$4, cached.$5),
  );
}