From fa49e0bf71ccd4bc98df0fa83546250c1b849e2e Mon Sep 17 00:00:00 2001 From: stuebinm Date: Sun, 11 Apr 2021 03:37:32 +0200 Subject: simple ffi with rust and haskell so far, only calling rust from haskell, not the other way round. --- rusty-haskell/rust/.gitignore | 1 + rusty-haskell/rust/Cargo.lock | 6 ++++++ rusty-haskell/rust/Cargo.toml | 13 +++++++++++++ rusty-haskell/rust/src/lib.rs | 11 +++++++++++ 4 files changed, 31 insertions(+) create mode 100644 rusty-haskell/rust/.gitignore create mode 100644 rusty-haskell/rust/Cargo.lock create mode 100644 rusty-haskell/rust/Cargo.toml create mode 100644 rusty-haskell/rust/src/lib.rs (limited to 'rusty-haskell/rust') diff --git a/rusty-haskell/rust/.gitignore b/rusty-haskell/rust/.gitignore new file mode 100644 index 0000000..e420ee4 --- /dev/null +++ b/rusty-haskell/rust/.gitignore @@ -0,0 +1 @@ +target/* diff --git a/rusty-haskell/rust/Cargo.lock b/rusty-haskell/rust/Cargo.lock new file mode 100644 index 0000000..3cae764 --- /dev/null +++ b/rusty-haskell/rust/Cargo.lock @@ -0,0 +1,6 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +[[package]] +name = "rustlib" +version = "0.1.0" + diff --git a/rusty-haskell/rust/Cargo.toml b/rusty-haskell/rust/Cargo.toml new file mode 100644 index 0000000..0bef17d --- /dev/null +++ b/rusty-haskell/rust/Cargo.toml @@ -0,0 +1,13 @@ +[package] +name = "rustlib" +version = "0.1.0" +authors = ["stuebinm "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[lib] +name = "rustlib" +crate-type = ["staticlib"] + +[dependencies] diff --git a/rusty-haskell/rust/src/lib.rs b/rusty-haskell/rust/src/lib.rs new file mode 100644 index 0000000..d954f2b --- /dev/null +++ b/rusty-haskell/rust/src/lib.rs @@ -0,0 +1,11 @@ + + +#[no_mangle] +pub extern fn double_input(x: i32) -> i32 { + 2 * x +} + +#[no_mangle] +pub extern fn print_hello() { + println!("hello, world, from rust!"); +} -- cgit v1.2.3