| 489 | |
| 490 | template <typename Arg0Type, typename Arg1Type, typename VisitFunc, typename NullFunc> |
| 491 | static void VisitTwoArrayValuesInline(const ArraySpan& arr0, const ArraySpan& arr1, |
| 492 | VisitFunc&& valid_func, NullFunc&& null_func) { |
| 493 | ArrayIterator<Arg0Type> arr0_it(arr0); |
| 494 | ArrayIterator<Arg1Type> arr1_it(arr1); |
| 495 | |
| 496 | auto visit_valid = [&](int64_t i) { |
| 497 | valid_func(GetViewType<Arg0Type>::LogicalValue(arr0_it()), |
| 498 | GetViewType<Arg1Type>::LogicalValue(arr1_it())); |
| 499 | }; |
| 500 | auto visit_null = [&]() { |
| 501 | arr0_it(); |
| 502 | arr1_it(); |
| 503 | null_func(); |
| 504 | }; |
| 505 | VisitTwoBitBlocksVoid(arr0.buffers[0].data, arr0.offset, arr1.buffers[0].data, |
| 506 | arr1.offset, arr0.length, std::move(visit_valid), |
| 507 | std::move(visit_null)); |
| 508 | } |
| 509 | |
| 510 | // ---------------------------------------------------------------------- |
| 511 | // Reusable type resolvers |
nothing calls this directly
no test coverage detected