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

vortex-data / vortex / 16992684502

15 Aug 2025 02:56PM UTC coverage: 87.875% (+0.2%) from 87.72%
16992684502

Pull #2456

github

web-flow
Merge 2d540e578 into 4a23f65b3
Pull Request #2456: feat: basic BoolBuffer / BoolBufferMut

1275 of 1428 new or added lines in 110 files covered. (89.29%)

334 existing lines in 31 files now uncovered.

57169 of 65057 relevant lines covered (87.88%)

658056.52 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,743✔
18
    left_buffer: ByteBuffer,
26,743✔
19
    left_offset: usize,
26,743✔
20
    right_buffer: ByteBuffer,
26,743✔
21
    right_offset: usize,
26,743✔
22
    len: usize,
26,743✔
23
    mut op: F,
26,743✔
24
) -> ByteBuffer {
26,743✔
25
    let mut result = BufferMut::<u64>::empty();
26,743✔
26
    result.extend_trusted(
26,743✔
27
        left_buffer
26,743✔
28
            .bit_chunks(left_offset, len)
26,743✔
29
            .iter()
26,743✔
30
            .zip(right_buffer.bit_chunks(right_offset, len))
26,743✔
31
            .map(|(l, r)| op(l, r)),
418,054✔
32
    );
33
    Buffer::from_byte_buffer_aligned(result.freeze().into_byte_buffer(), Alignment::of::<u8>())
26,743✔
34
}
26,743✔
35

36
pub fn bitwise_and(
26,614✔
37
    left_buffer: ByteBuffer,
26,614✔
38
    left_offset: usize,
26,614✔
39
    right_buffer: ByteBuffer,
26,614✔
40
    right_offset: usize,
26,614✔
41
    len: usize,
26,614✔
42
) -> ByteBuffer {
26,614✔
43
    bitwise_binary_op(
26,614✔
44
        left_buffer,
26,614✔
45
        left_offset,
26,614✔
46
        right_buffer,
26,614✔
47
        right_offset,
26,614✔
48
        len,
26,614✔
49
        |l, r| l & r,
417,925✔
50
    )
51
}
26,614✔
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