select5<SubState1, SubState2, SubState3, SubState4, SubState5, Result> method

StateStream<Result> select5<SubState1, SubState2, SubState3, SubState4, SubState5, Result>(
  1. Selector<State, SubState1> selector1,
  2. Selector<State, SubState2> selector2,
  3. Selector<State, SubState3> selector3,
  4. Selector<State, SubState4> selector4,
  5. Selector<State, SubState5> selector5,
  6. Result projector(
    1. SubState1 subState1,
    2. SubState2 subState2,
    3. SubState3 subState3,
    4. SubState4 subState4,
    5. SubState5 subState5,
    ), {
  7. Equality<SubState1>? equals1,
  8. Equality<SubState2>? equals2,
  9. Equality<SubState3>? equals3,
  10. Equality<SubState4>? equals4,
  11. Equality<SubState5>? equals5,
  12. Equality<Result>? equals,
})

Select five sub states and combine them by projector.

The returned Stream is a single-subscription Stream.

Implementation

StateStream<Result>
    select5<SubState1, SubState2, SubState3, SubState4, SubState5, Result>(
  Selector<State, SubState1> selector1,
  Selector<State, SubState2> selector2,
  Selector<State, SubState3> selector3,
  Selector<State, SubState4> selector4,
  Selector<State, SubState5> selector5,
  Result Function(
    SubState1 subState1,
    SubState2 subState2,
    SubState3 subState3,
    SubState4 subState4,
    SubState5 subState5,
  )
      projector, {
  Equality<SubState1>? equals1,
  Equality<SubState2>? equals2,
  Equality<SubState3>? equals3,
  Equality<SubState4>? equals4,
  Equality<SubState5>? equals5,
  Equality<Result>? equals,
}) {
  return selectMany<Object?, Result>(
    [
      selector1,
      selector2,
      selector3,
      selector4,
      selector5,
    ],
    [
      _castToDynamicParams<SubState1>(equals1),
      _castToDynamicParams<SubState2>(equals2),
      _castToDynamicParams<SubState3>(equals3),
      _castToDynamicParams<SubState4>(equals4),
      _castToDynamicParams<SubState5>(equals5),
    ],
    (subStates) => projector(
      subStates[0] as SubState1,
      subStates[1] as SubState2,
      subStates[2] as SubState3,
      subStates[3] as SubState4,
      subStates[4] as SubState5,
    ),
    equals: equals,
  );
}