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

vortex-data / vortex / 16992591828

15 Aug 2025 02:51PM UTC coverage: 87.203% (-0.5%) from 87.72%
16992591828

Pull #2456

github

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

476 of 1230 new or added lines in 107 files covered. (38.7%)

74 existing lines in 19 files now uncovered.

56525 of 64820 relevant lines covered (87.2%)

623751.88 hits per line

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

0.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

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

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

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

NEW
53
pub fn bitwise_or(
×
NEW
54
    left_buffer: ByteBuffer,
×
NEW
55
    left_offset: usize,
×
NEW
56
    right_buffer: ByteBuffer,
×
NEW
57
    right_offset: usize,
×
NEW
58
    len: usize,
×
NEW
59
) -> ByteBuffer {
×
NEW
60
    bitwise_binary_op(
×
NEW
61
        left_buffer,
×
NEW
62
        left_offset,
×
NEW
63
        right_buffer,
×
NEW
64
        right_offset,
×
NEW
65
        len,
×
NEW
66
        |l, r| l | r,
×
67
    )
NEW
68
}
×
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

NEW
87
pub fn bitwise_not(buffer: ByteBuffer, offset: usize, len: usize) -> ByteBuffer {
×
NEW
88
    bitwise_unary_op(buffer, offset, len, |l| !l)
×
NEW
89
}
×
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