From fa81f98dba960a9a60aaf1b526a7665bcee64e67 Mon Sep 17 00:00:00 2001 From: JP Raynaud Date: Sat, 26 Feb 2022 13:40:19 +0100 Subject: [PATCH] Added integer addition example --- go/cmd/main.go | 8 ++++++++ go/cmd/rustlib.h | 5 ++++- rust/src/lib.rs | 5 +++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/go/cmd/main.go b/go/cmd/main.go index a278129..1e79b55 100644 --- a/go/cmd/main.go +++ b/go/cmd/main.go @@ -7,7 +7,15 @@ package main #include "./rustlib.h" */ import "C" +import "fmt" func main() { + // 1 - Hello C.hello() + + // 2 - Addition + x := C.uint32_t(10) + y := C.uint32_t(100) + add := uint(C.addition(x, y)) + fmt.Printf("Addition=%d\r\n", add) } diff --git a/go/cmd/rustlib.h b/go/cmd/rustlib.h index cfc7be1..5fa208c 100644 --- a/go/cmd/rustlib.h +++ b/go/cmd/rustlib.h @@ -1 +1,4 @@ -extern int hello(); \ No newline at end of file +#include + +extern void hello(); +extern uint32_t addition(uint32_t, uint32_t); \ No newline at end of file diff --git a/rust/src/lib.rs b/rust/src/lib.rs index cc7a582..f598c3f 100644 --- a/rust/src/lib.rs +++ b/rust/src/lib.rs @@ -2,3 +2,8 @@ pub extern "C" fn hello() { println!("Hello World in Rust"); } + +#[no_mangle] +pub extern "C" fn addition(x: u32, y: u32) -> u32 { + x + y +}