|
#[repr(C, packed)]
|
|
#[derive(Copy, Clone, Debug, PartialEq)]
|
|
struct Foo {
|
|
a: i8,
|
|
b: i16,
|
|
c: i8,
|
|
}
|
|
|
|
#[link(name = "test", kind = "static")]
|
|
extern "C" {
|
|
fn foo(f: Foo) -> Foo;
|
|
}
|
|
|
|
fn main() {
|
|
unsafe {
|
|
let a = Foo { a: 1, b: 2, c: 3 };
|
|
let b = foo(a);
|
|
assert_eq!(a, b);
|
|
}
|
|
}
|