| 505 | |
| 506 | template <typename Arg0Type, typename Arg1Type, typename VisitFunc, typename NullFunc> |
| 507 | static void VisitTwoArrayValuesInline(const ArraySpan& arr0, const ArraySpan& arr1, |
| 508 | VisitFunc&& valid_func, NullFunc&& null_func) { |
| 509 | ArrayIterator<Arg0Type> arr0_it(arr0); |
| 510 | ArrayIterator<Arg1Type> arr1_it(arr1); |
| 511 | |
| 512 | auto visit_valid = [&](int64_t i) { |
| 513 | valid_func(GetViewType<Arg0Type>::LogicalValue(arr0_it()), |
| 514 | GetViewType<Arg1Type>::LogicalValue(arr1_it())); |
| 515 | }; |
| 516 | auto visit_null = [&]() { |
| 517 | arr0_it(); |
| 518 | arr1_it(); |
| 519 | null_func(); |
| 520 | }; |
| 521 | VisitTwoBitBlocksVoid(arr0.buffers[0].data, arr0.offset, arr1.buffers[0].data, |
| 522 | arr1.offset, arr0.length, std::move(visit_valid), |
| 523 | std::move(visit_null)); |
| 524 | } |
| 525 | |
| 526 | // ---------------------------------------------------------------------- |
| 527 | // Reusable type resolvers |
nothing calls this directly
no test coverage detected