| extern crate testcrate; | |
| extern "C" fn bar<T>(ts: testcrate::TestStruct<T>) -> T { | |
| ts.y | |
| } | |
| #[link(name = "test", kind = "static")] | |
| extern "C" { | |
| fn call(c: extern "C" fn(testcrate::TestStruct<i32>) -> i32) -> i32; | |
| } | |
| fn main() { | |
| // Let's test calling it cross crate | |
| let back = unsafe { testcrate::call(testcrate::foo::<i32>) }; | |
| assert_eq!(3, back); | |
| // And just within this crate | |
| let back = unsafe { call(bar::<i32>) }; | |
| assert_eq!(3, back); | |
| } |