This compares two InputStreams.
This compares two InputStreams. After this call, the position in the InputStreams is mutated to be the end of the record.
returns Some if the size is cheap to calculate.
returns Some if the size is cheap to calculate. otherwise the caller should just serialize into an ByteArrayOutputStream
generally there is no way to see how big a utf-8 string is without serializing.
generally there is no way to see how big a utf-8 string is without serializing. We could scan looking for all ascii characters, but it's hard to see if we'd get the balance right.