The Long flavour of elementsEqual: same length, and the same
64-bit value at every index.
A separate function rather than an argument to the one above, because the
comparison itself is different. A Long is an object identity — two
instances holding the same 64 bits are !== — so elementsEqual's === would
report every Long-backed array as unequal to its schema default and the
≠-default test (MESSAGE_SPEC §2) would emit a field that should have been
omitted. Comparing the (low, high) halves is what "same value" means for this
representation, and it is the only 64-bit representation that needs it:
bigint and number elements are values already and go through
elementsEqual.
Which arrays are handed over is the declared type's business, so there is no
schema in here either (ARCHITECTURE §8).
The Long flavour of elementsEqual: same length, and the same 64-bit value at every index.
A separate function rather than an argument to the one above, because the comparison itself is different. A
Longis an object identity — two instances holding the same 64 bits are!==— soelementsEqual's===would report everyLong-backed array as unequal to its schema default and the ≠-default test (MESSAGE_SPEC §2) would emit a field that should have been omitted. Comparing the(low, high)halves is what "same value" means for this representation, and it is the only 64-bit representation that needs it:bigintandnumberelements are values already and go through elementsEqual.Which arrays are handed over is the declared type's business, so there is no schema in here either (ARCHITECTURE §8).