reduce<C extends Object, P1 extends Object, P2 extends Object, P3 extends Object, P4 extends Object, P5 extends Object, P6 extends Object, P7 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, P6 extends Object, P7 extends Object>(
  1. TResponderFn7<P1, P2, P3, P4, P5, P6, P7> responder,
  2. TReducerFn7<C, P1, P2, P3, P4, P5, P6, P7> reducer
)

Reduces 7 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,
    P6 extends Object,
    P7 extends Object>(
  TResponderFn7<P1, P2, P3, P4, P5, P6, P7> responder,
  TReducerFn7<C, P1, P2, P3, P4, P5, P6, P7> reducer,
) {
  late (
    GenericPod<P1>,
    GenericPod<P2>,
    GenericPod<P3>,
    GenericPod<P4>,
    GenericPod<P5>,
    GenericPod<P6>,
    GenericPod<P7>,
  ) cached;
  return ChildPod<Object, C>(
    responder: () {
      cached = responder();
      return [
        cached.$1,
        cached.$2,
        cached.$3,
        cached.$4,
        cached.$5,
        cached.$6,
        cached.$7,
      ];
    },
    reducer: (_) => reducer(
      cached.$1,
      cached.$2,
      cached.$3,
      cached.$4,
      cached.$5,
      cached.$6,
      cached.$7,
    ),
  );
}