Create a new [`BooleanBuffer`] from a [`Buffer`], `bit_offset` offset and `bit_len` length # Panics This method will panic if `buffer` is not large enough
(buffer: Buffer, bit_offset: usize, bit_len: usize)
| 122 | /// |
| 123 | /// This method will panic if `buffer` is not large enough |
| 124 | pub fn new(buffer: Buffer, bit_offset: usize, bit_len: usize) -> Self { |
| 125 | let total_len = bit_offset.saturating_add(bit_len); |
| 126 | let buffer_len = buffer.len(); |
| 127 | let buffer_bit_len = buffer_len.saturating_mul(8); |
| 128 | assert!( |
| 129 | total_len <= buffer_bit_len, |
| 130 | "buffer not large enough (bit_offset: {bit_offset}, bit_len: {bit_len}, buffer_len: {buffer_len})" |
| 131 | ); |
| 132 | Self { |
| 133 | buffer, |
| 134 | bit_offset, |
| 135 | bit_len, |
| 136 | } |
| 137 | } |
| 138 | |
| 139 | /// Create a new [`BooleanBuffer`] of `length` bits (not bytes) where all values are `true` |
| 140 | pub fn new_set(length: usize) -> Self { |