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

vortex-data / vortex / 16980200873

15 Aug 2025 12:53AM UTC coverage: 49.805%. First build
16980200873

Pull #2456

github

web-flow
Merge aff477380 into aaf3e36ad
Pull Request #2456: feat: basic BoolBuffer / BoolBufferMut

574 of 1074 new or added lines in 84 files covered. (53.45%)

20158 of 40474 relevant lines covered (49.8%)

238516.31 hits per line

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

42.67
/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

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

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