2014-05-14 01:07:33 -05:00
|
|
|
extern crate testcrate;
|
|
|
|
|
|
|
|
use std::mem;
|
|
|
|
|
2020-09-01 16:12:52 -05:00
|
|
|
extern "C" {
|
2014-05-14 01:07:33 -05:00
|
|
|
fn give_back(tu: testcrate::TestUnion) -> u64;
|
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {
|
|
|
|
let magic: u64 = 0xDEADBEEF;
|
|
|
|
|
|
|
|
// Let's test calling it cross crate
|
2020-09-01 16:12:52 -05:00
|
|
|
let back = unsafe { testcrate::give_back(mem::transmute(magic)) };
|
2014-05-14 01:07:33 -05:00
|
|
|
assert_eq!(magic, back);
|
|
|
|
|
|
|
|
// And just within this crate
|
2020-09-01 16:12:52 -05:00
|
|
|
let back = unsafe { give_back(mem::transmute(magic)) };
|
2014-05-14 01:07:33 -05:00
|
|
|
assert_eq!(magic, back);
|
|
|
|
}
|