/// Cast i32 to u32 (same size, no instruction needed). fn i32ToU32(x: i32) -> u32 { return x as u32; } /// Cast u8 to i32 (zero-extend). fn u8ToI32(x: u8) -> i32 { return x as i32; } /// Cast i8 to i32 (sign-extend). fn i8ToI32(x: i8) -> i32 { return x as i32; } /// Cast u16 to i32 (zero-extend). fn u16ToI32(x: u16) -> i32 { return x as i32; } /// Cast i16 to i32 (sign-extend). fn i16ToI32(x: i16) -> i32 { return x as i32; } /// Cast i32 to i8 (narrowing, no instruction). fn i32ToI8(x: i32) -> i8 { return x as i8; } /// Cast u8 to u32 (zero-extend to unsigned target). fn u8ToU32(x: u8) -> u32 { return x as u32; } /// Cast i32 to i16 (narrowing). fn i32ToI16(x: i32) -> i16 { return x as i16; } /// Cast pointer types (same size, no instruction). unsafe fn ptrCast(x: *u8) -> *i32 { return x as *i32; }