Spaces:
Build error
Build error
use bitvec::vec::BitVec; | |
use common::types::PointOffsetType; | |
/// Set deleted state in given bitvec. | |
/// | |
/// Grows bitvec automatically if it is not big enough. | |
/// | |
/// Returns previous deleted state of the given point. | |
pub fn bitvec_set_deleted(bitvec: &mut BitVec, point_id: PointOffsetType, deleted: bool) -> bool { | |
// Set deleted flag if bitvec is large enough, no need to check bounds | |
if (point_id as usize) < bitvec.len() { | |
return unsafe { bitvec.replace_unchecked(point_id as usize, deleted) }; | |
} | |
// Bitvec is too small; grow and set the deletion flag, no need to check bounds | |
if deleted { | |
bitvec.resize(point_id as usize + 1, false); | |
unsafe { bitvec.set_unchecked(point_id as usize, true) }; | |
} | |
false | |
} | |