in src/main/scala/com/twitter/stitch/Stitch.scala [726:771]
def join[A, B, C, D, E, F, G, H](
a: Stitch[A],
b: Stitch[B],
c: Stitch[C],
d: Stitch[D],
e: Stitch[E],
f: Stitch[F],
g: Stitch[G],
h: Stitch[H]
): Stitch[(A, B, C, D, E, F, G, H)] =
joinMap(a, b, c, d, e, f, g, h)(tuple8).asInstanceOf[Stitch[(A, B, C, D, E, F, G, H)]]
def joinMap[A, B, C, D, E, F, G, H, Z](
a: Stitch[A],
b: Stitch[B],
c: Stitch[C],
d: Stitch[D],
e: Stitch[E],
f: Stitch[F],
g: Stitch[G],
h: Stitch[H]
)(
z: (A, B, C, D, E, F, G, H) => Z
): Stitch[Z] = {
val buf = new ArrayBuffer[Stitch[Any]](8)
buf += a
buf += b
buf += c
buf += d
buf += e
buf += f
buf += g
buf += h
collectNoCopy(buf).map { ss =>
z(
ss(0).asInstanceOf[A],
ss(1).asInstanceOf[B],
ss(2).asInstanceOf[C],
ss(3).asInstanceOf[D],
ss(4).asInstanceOf[E],
ss(5).asInstanceOf[F],
ss(6).asInstanceOf[G],
ss(7).asInstanceOf[H]
)
}
}