pub(crate) struct Group(__m128i);
Expand description
Abstraction over a group of control tags which can be scanned in parallel.
This implementation uses a 128-bit SSE value.
Tuple Fields§
§0: __m128i
Implementations§
source§impl Group
impl Group
sourcepub(crate) const fn static_empty() -> &'static [Tag; 16]
pub(crate) const fn static_empty() -> &'static [Tag; 16]
Returns a full group of empty tags, suitable for use as the initial value for an empty hash table.
This is guaranteed to be aligned to the group size.
sourcepub(crate) unsafe fn load(ptr: *const Tag) -> Self
pub(crate) unsafe fn load(ptr: *const Tag) -> Self
Loads a group of tags starting at the given address.
sourcepub(crate) unsafe fn load_aligned(ptr: *const Tag) -> Self
pub(crate) unsafe fn load_aligned(ptr: *const Tag) -> Self
Loads a group of tags starting at the given address, which must be
aligned to mem::align_of::<Group>()
.
sourcepub(crate) unsafe fn store_aligned(self, ptr: *mut Tag)
pub(crate) unsafe fn store_aligned(self, ptr: *mut Tag)
Stores the group of tags to the given address, which must be
aligned to mem::align_of::<Group>()
.
sourcepub(crate) fn match_tag(self, tag: Tag) -> BitMask
pub(crate) fn match_tag(self, tag: Tag) -> BitMask
Returns a BitMask
indicating all tags in the group which have
the given value.
sourcepub(crate) fn match_empty(self) -> BitMask
pub(crate) fn match_empty(self) -> BitMask
Returns a BitMask
indicating all tags in the group which are
EMPTY
.
sourcepub(crate) fn match_empty_or_deleted(self) -> BitMask
pub(crate) fn match_empty_or_deleted(self) -> BitMask
Returns a BitMask
indicating all tags in the group which are
EMPTY
or DELETED
.
sourcepub(crate) fn match_full(&self) -> BitMask
pub(crate) fn match_full(&self) -> BitMask
Returns a BitMask
indicating all tags in the group which are full.
sourcepub(crate) fn convert_special_to_empty_and_full_to_deleted(self) -> Self
pub(crate) fn convert_special_to_empty_and_full_to_deleted(self) -> Self
Performs the following transformation on all tags in the group:
EMPTY => EMPTY
DELETED => EMPTY
FULL => DELETED
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Group
impl RefUnwindSafe for Group
impl Send for Group
impl Sync for Group
impl Unpin for Group
impl UnwindSafe for Group
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)