pub trait BucketOccupied: BucketCapacity {
// Required methods
fn occupy(&mut self, element: &mut [u8], ix: usize);
fn free(&mut self, element: &mut [u8], ix: usize);
fn is_free(&self, element: &[u8], ix: usize) -> bool;
fn offset_to_first_data() -> usize;
fn new(capacity: Capacity) -> Self;
// Provided method
fn copying_entry(
&mut self,
_element_new: &mut [u8],
_ix_new: usize,
_other: &Self,
_element_old: &[u8],
_ix_old: usize
) { ... }
}
Expand description
keep track of an individual element’s occupied vs. free state
every element must either be occupied or free and should never be double occupied or double freed
For parameters below, element
is used to view/modify header fields or fields within the element data.
Required Methods§
sourcefn occupy(&mut self, element: &mut [u8], ix: usize)
fn occupy(&mut self, element: &mut [u8], ix: usize)
set entry at ix
as occupied (as opposed to free)
sourcefn offset_to_first_data() -> usize
fn offset_to_first_data() -> usize
of bytes prior to first data held in the element.
This is the header size, if a header exists per element in the data. This must be a multiple of sizeof(u64)