raphtory_api/atomic_extra/
mod.rs1use crate::core::entities::VID;
2use std::sync::atomic::{AtomicU64, AtomicUsize};
3
4#[inline]
6pub fn atomic_usize_from_mut_slice(v: &mut [usize]) -> &mut [AtomicUsize] {
7 use std::mem::align_of;
8 let [] = [(); align_of::<AtomicUsize>() - align_of::<usize>()];
9 unsafe { &mut *(v as *mut [usize] as *mut [AtomicUsize]) }
14}
15
16#[inline]
17pub fn atomic_vid_from_mut_slice(v: &mut [VID]) -> &mut [AtomicUsize] {
18 atomic_usize_from_mut_slice(bytemuck::cast_slice_mut(v))
19}
20
21#[inline]
22pub fn atomic_u64_from_mut_slice(v: &mut [u64]) -> &mut [AtomicU64] {
23 use std::mem::align_of;
24 let [] = [(); align_of::<AtomicU64>() - align_of::<u64>()];
25 unsafe { &mut *(v as *mut [u64] as *mut [AtomicU64]) }
30}