summaryrefslogtreecommitdiff
path: root/test/c-from-rust/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'test/c-from-rust/main.rs')
-rw-r--r--test/c-from-rust/main.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/test/c-from-rust/main.rs b/test/c-from-rust/main.rs
new file mode 100644
index 0000000..961150a
--- /dev/null
+++ b/test/c-from-rust/main.rs
@@ -0,0 +1,20 @@
+use std::env;
+
+extern "C" {
+ fn c_func(input: i32) -> i32;
+}
+
+fn c_call(i:i32) -> i32{
+ unsafe {
+ return c_func(i);
+ }
+}
+
+fn main() {
+ let args: Vec<String> = env::args().collect();
+ match args[1].parse::<i32>() {
+ Ok(i) => println!("Absolute value of {} is {}",i, c_call(i)),
+ Err(..) => println!("Wrong argument {}",args[1]),
+ };
+
+}