MCPcopy Create free account
hub / github.com/apache/arrow-rs / offset_value_equal

Function offset_value_equal

arrow-data/src/equal/variable_size.rs:24–47  ·  view source on GitHub ↗
(
    lhs_values: &[u8],
    rhs_values: &[u8],
    lhs_offsets: &[T],
    rhs_offsets: &[T],
    lhs_pos: usize,
    rhs_pos: usize,
    len: usize,
)

Source from the content-addressed store, hash-verified

22use num_integer::Integer;
23
24fn offset_value_equal<T: ArrowNativeType + Integer>(
25 lhs_values: &[u8],
26 rhs_values: &[u8],
27 lhs_offsets: &[T],
28 rhs_offsets: &[T],
29 lhs_pos: usize,
30 rhs_pos: usize,
31 len: usize,
32) -> bool {
33 let lhs_start = lhs_offsets[lhs_pos].as_usize();
34 let rhs_start = rhs_offsets[rhs_pos].as_usize();
35 let lhs_len = (lhs_offsets[lhs_pos + len] - lhs_offsets[lhs_pos])
36 .to_usize()
37 .unwrap();
38 let rhs_len = (rhs_offsets[rhs_pos + len] - rhs_offsets[rhs_pos])
39 .to_usize()
40 .unwrap();
41
42 if lhs_len == 0 && rhs_len == 0 {
43 return true;
44 }
45
46 lhs_len == rhs_len && equal_len(lhs_values, rhs_values, lhs_start, rhs_start, lhs_len)
47}
48
49pub(super) fn variable_sized_equal<T: ArrowNativeType + Integer>(
50 lhs: &ArrayData,

Callers 1

variable_sized_equalFunction · 0.85

Calls 3

equal_lenFunction · 0.85
as_usizeMethod · 0.80
to_usizeMethod · 0.80

Tested by

no test coverage detected