Skip to main content

check_alignment

Function check_alignment 

Source
pub fn check_alignment<T>(ptr: *const u8) -> Result<(), SafetyError>
Expand description

Check that a pointer is properly aligned for type T.

ยงExample

use serializer::safety::{check_alignment, SafetyError};

let aligned: [u64; 2] = [0, 0];
let ptr = aligned.as_ptr() as *const u8;

// u64 requires 8-byte alignment
assert!(check_alignment::<u64>(ptr).is_ok());

// Offset by 1 byte - now misaligned for u64
let misaligned = unsafe { ptr.add(1) };
assert!(matches!(
    check_alignment::<u64>(misaligned),
    Err(SafetyError::Misaligned { needed: 8, actual: 1 })
));