( elements: Elements )
| 511 | * @since 4.0.0 |
| 512 | */ |
| 513 | export function Tuple<const Elements extends ReadonlyArray<Order<any>>>( |
| 514 | elements: Elements |
| 515 | ): Order<{ readonly [I in keyof Elements]: [Elements[I]] extends [Order<infer A>] ? A : never }> { |
| 516 | return make((self, that) => { |
| 517 | const len = elements.length |
| 518 | for (let i = 0; i < len; i++) { |
| 519 | const o = elements[i](self[i], that[i]) |
| 520 | if (o !== 0) { |
| 521 | return o |
| 522 | } |
| 523 | } |
| 524 | return 0 |
| 525 | }) |
| 526 | } |
| 527 | |
| 528 | /** |
| 529 | * @since 4.0.0 |