Skip to main content

luaur_code_gen/functions/
writef_32.rs

1use luaur_common::macros::luau_big_endian::LUAU_BIG_ENDIAN;
2
3#[inline]
4pub unsafe fn writef_32(target: *mut u8, value: f32) -> *mut u8 {
5    if LUAU_BIG_ENDIAN {
6        let mut data: u32 = 0;
7        core::ptr::copy_nonoverlapping(
8            &value as *const f32 as *const u8,
9            &mut data as *mut u32 as *mut u8,
10            core::mem::size_of::<f32>(),
11        );
12        crate::functions::writeu_32::writeu_32(target, data)
13    } else {
14        core::ptr::copy_nonoverlapping(
15            &value as *const f32 as *const u8,
16            target,
17            core::mem::size_of::<f32>(),
18        );
19        target.add(core::mem::size_of::<f32>())
20    }
21}