| 617 | |
| 618 | template <typename RunEndCType> |
| 619 | Status CompareRunEndEncoded() { |
| 620 | auto left_span = ArraySpan(left_); |
| 621 | auto right_span = ArraySpan(right_); |
| 622 | left_span.SetSlice(left_.offset + left_start_idx_, range_length_); |
| 623 | right_span.SetSlice(right_.offset + right_start_idx_, range_length_); |
| 624 | const ree_util::RunEndEncodedArraySpan<RunEndCType> left(left_span); |
| 625 | const ree_util::RunEndEncodedArraySpan<RunEndCType> right(right_span); |
| 626 | |
| 627 | const auto& left_values = *left_.child_data[1]; |
| 628 | const auto& right_values = *right_.child_data[1]; |
| 629 | |
| 630 | auto it = ree_util::MergedRunsIterator(left, right); |
| 631 | for (; !it.is_end(); ++it) { |
| 632 | RangeDataEqualsImpl impl(options_, left_values, right_values, |
| 633 | it.index_into_left_array(), it.index_into_right_array(), |
| 634 | /*range_length=*/1); |
| 635 | if (!impl.Compare()) { |
| 636 | result_ = false; |
| 637 | return Status::OK(); |
| 638 | } |
| 639 | } |
| 640 | return Status::OK(); |
| 641 | } |
| 642 | |
| 643 | template <typename offset_type, typename CompareRanges> |
| 644 | void CompareWithOffsets(int offsets_buffer_index, CompareRanges&& compare_ranges) { |
nothing calls this directly
no test coverage detected