• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

vortex-data / vortex / 17032541022

18 Aug 2025 06:10AM UTC coverage: 87.911%. First build
17032541022

Pull #2456

github

web-flow
Merge 87ea4e137 into d578fe02e
Pull Request #2456: feat: basic BoolBuffer / BoolBufferMut

1281 of 1435 new or added lines in 114 files covered. (89.27%)

57302 of 65182 relevant lines covered (87.91%)

655044.44 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

80.0
/vortex-buffer/src/bit/ops.rs
1
// SPDX-License-Identifier: Apache-2.0
2
// SPDX-FileCopyrightText: Copyright the Vortex contributors
3

4
use crate::{Alignment, Buffer, BufferMut, ByteBuffer};
5

6
pub fn bitwise_unary_op<F: FnMut(u64) -> u64>(
63,339✔
7
    buffer: ByteBuffer,
63,339✔
8
    offset: usize,
63,339✔
9
    len: usize,
63,339✔
10
    op: F,
63,339✔
11
) -> ByteBuffer {
63,339✔
12
    let mut result = BufferMut::<u64>::empty();
63,339✔
13
    result.extend_trusted(buffer.bit_chunks(offset, len).iter().map(op));
63,339✔
14
    Buffer::from_byte_buffer_aligned(result.freeze().into_byte_buffer(), Alignment::of::<u8>())
63,339✔
15
}
63,339✔
16

17
pub fn bitwise_binary_op<F: FnMut(u64, u64) -> u64>(
26,710✔
18
    left_buffer: ByteBuffer,
26,710✔
19
    left_offset: usize,
26,710✔
20
    right_buffer: ByteBuffer,
26,710✔
21
    right_offset: usize,
26,710✔
22
    len: usize,
26,710✔
23
    mut op: F,
26,710✔
24
) -> ByteBuffer {
26,710✔
25
    let mut result = BufferMut::<u64>::empty();
26,710✔
26
    result.extend_trusted(
26,710✔
27
        left_buffer
26,710✔
28
            .bit_chunks(left_offset, len)
26,710✔
29
            .iter()
26,710✔
30
            .zip(right_buffer.bit_chunks(right_offset, len))
26,710✔
31
            .map(|(l, r)| op(l, r)),
379,003✔
32
    );
33
    Buffer::from_byte_buffer_aligned(result.freeze().into_byte_buffer(), Alignment::of::<u8>())
26,710✔
34
}
26,710✔
35

36
pub fn bitwise_and(
26,581✔
37
    left_buffer: ByteBuffer,
26,581✔
38
    left_offset: usize,
26,581✔
39
    right_buffer: ByteBuffer,
26,581✔
40
    right_offset: usize,
26,581✔
41
    len: usize,
26,581✔
42
) -> ByteBuffer {
26,581✔
43
    bitwise_binary_op(
26,581✔
44
        left_buffer,
26,581✔
45
        left_offset,
26,581✔
46
        right_buffer,
26,581✔
47
        right_offset,
26,581✔
48
        len,
26,581✔
49
        |l, r| l & r,
378,874✔
50
    )
51
}
26,581✔
52

53
pub fn bitwise_or(
129✔
54
    left_buffer: ByteBuffer,
129✔
55
    left_offset: usize,
129✔
56
    right_buffer: ByteBuffer,
129✔
57
    right_offset: usize,
129✔
58
    len: usize,
129✔
59
) -> ByteBuffer {
129✔
60
    bitwise_binary_op(
129✔
61
        left_buffer,
129✔
62
        left_offset,
129✔
63
        right_buffer,
129✔
64
        right_offset,
129✔
65
        len,
129✔
66
        |l, r| l | r,
129✔
67
    )
68
}
129✔
69

NEW
70
pub fn bitwise_xor(
×
NEW
71
    left_buffer: ByteBuffer,
×
NEW
72
    left_offset: usize,
×
NEW
73
    right_buffer: ByteBuffer,
×
NEW
74
    right_offset: usize,
×
NEW
75
    len: usize,
×
NEW
76
) -> ByteBuffer {
×
NEW
77
    bitwise_binary_op(
×
NEW
78
        left_buffer,
×
NEW
79
        left_offset,
×
NEW
80
        right_buffer,
×
NEW
81
        right_offset,
×
NEW
82
        len,
×
NEW
83
        |l, r| l ^ r,
×
84
    )
NEW
85
}
×
86

87
pub fn bitwise_not(buffer: ByteBuffer, offset: usize, len: usize) -> ByteBuffer {
63,339✔
88
    bitwise_unary_op(buffer, offset, len, |l| !l)
268,191✔
89
}
63,339✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc