• 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/arrow.rs
1
// SPDX-License-Identifier: Apache-2.0
2
// SPDX-FileCopyrightText: Copyright the Vortex contributors
3

4
//! Conversions between `BitBuffer` and Arrow's `BooleanBuffer`.
5

6
use arrow_buffer::BooleanBuffer;
7

8
use crate::{Alignment, BitBuffer, ByteBuffer};
9

10
impl From<BooleanBuffer> for BitBuffer {
NEW
11
    fn from(value: BooleanBuffer) -> Self {
×
NEW
12
        let offset = value.offset();
×
NEW
13
        let len = value.len();
×
NEW
14
        let buffer = value.into_inner();
×
NEW
15
        let buffer = ByteBuffer::from_arrow_buffer(buffer, Alignment::of::<u8>());
×
16

NEW
17
        BitBuffer::new_with_offset(buffer, len, offset)
×
NEW
18
    }
×
19
}
20

21
impl From<BitBuffer> for BooleanBuffer {
NEW
22
    fn from(value: BitBuffer) -> Self {
×
NEW
23
        let offset = value.offset();
×
NEW
24
        let len = value.len();
×
NEW
25
        let buffer = value.into_inner();
×
26

NEW
27
        BooleanBuffer::new(buffer.into_arrow_buffer(), offset, len)
×
NEW
28
    }
×
29
}
30

31
#[cfg(test)]
32
mod tests {
33
    use arrow_buffer::{BooleanBuffer, BooleanBufferBuilder};
34

35
    use crate::BitBuffer;
36

37
    #[test]
38
    fn test_from_arrow() {
39
        let mut arrow_bools = BooleanBufferBuilder::new(10);
40
        arrow_bools.append_n(5, true);
41
        arrow_bools.append_n(5, false);
42
        let bit_buffer: BitBuffer = arrow_bools.finish().into();
43

44
        for i in 0..5 {
45
            assert!(bit_buffer.value(i));
46
        }
47

48
        for i in 5..10 {
49
            assert!(!bit_buffer.value(i));
50
        }
51

52
        // Convert back to Arrow
53
        let arrow_bools: BooleanBuffer = bit_buffer.into();
54

55
        for i in 0..5 {
56
            assert!(arrow_bools.value(i));
57
        }
58
        for i in 5..10 {
59
            assert!(!arrow_bools.value(i));
60
        }
61
    }
62
}
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