luaur_vm/functions/
buffer_swapbe.rs1#[inline]
2pub fn buffer_swapbe<T>(v: T) -> T {
3 let size = core::mem::size_of::<T>();
4 if size == 8 {
5 unsafe {
6 let val = core::mem::transmute_copy::<T, u64>(&v);
7 let swapped = val.swap_bytes();
8 core::mem::transmute_copy::<u64, T>(&swapped)
9 }
10 } else if size == 4 {
11 unsafe {
12 let val = core::mem::transmute_copy::<T, u32>(&v);
13 let swapped = val.swap_bytes();
14 core::mem::transmute_copy::<u32, T>(&swapped)
15 }
16 } else if size == 2 {
17 unsafe {
18 let val = core::mem::transmute_copy::<T, u16>(&v);
19 let swapped = val.swap_bytes();
20 core::mem::transmute_copy::<u16, T>(&swapped)
21 }
22 } else {
23 v
24 }
25}