luaur-common 0.1.1

Foundational data structures and flags for the luaur Luau-in-Rust toolchain.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
pub fn read<T: Copy>(data: &[u8], offset: &mut usize) -> T {
    let size = core::mem::size_of::<T>();
    assert!(*offset + size <= data.len(), "read out of bounds");

    let mut result = core::mem::MaybeUninit::<T>::uninit();
    unsafe {
        core::ptr::copy_nonoverlapping(
            data.as_ptr().add(*offset),
            result.as_mut_ptr() as *mut u8,
            size,
        );
        *offset += size;
        result.assume_init()
    }
}