From 69980f8b9d29b38dbd4ddf6373b4b45f3a138409 Mon Sep 17 00:00:00 2001 From: zhang san <8208210429@csu.edu.cn> Date: Mon, 8 Dec 2025 18:34:25 +0800 Subject: Adding Rust Language Support for RT-Thread #10910 --- .../rust/examples/modules/example_lib/src/lib.rs | 30 ++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 components/rust/examples/modules/example_lib/src/lib.rs (limited to 'components/rust/examples/modules/example_lib/src') diff --git a/components/rust/examples/modules/example_lib/src/lib.rs b/components/rust/examples/modules/example_lib/src/lib.rs new file mode 100644 index 0000000000..5f81c1553f --- /dev/null +++ b/components/rust/examples/modules/example_lib/src/lib.rs @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2006-2024, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author notes + * 2025-10-10 foxglove Basic library module template + */ +#![no_std] +/* Bring rt-rust's println! macro into scope */ +use rt_rust::println; +use core::ffi::{c_char, CStr}; +#[unsafe(no_mangle)] +pub extern "C" fn rust_mylib_println(s: *const c_char) { + if s.is_null() { + println!(""); + } else { + let cs = unsafe {CStr::from_ptr(s)}; + match cs.to_str() { + Ok(msg) => println!("{}", msg), + Err(_) => println!("[invalid UTF-8]"), + } + } +} + +#[unsafe(no_mangle)] +pub extern "C" fn rust_mylib_add(a: usize, b: usize) -> usize { + a + b +} \ No newline at end of file -- cgit v1.3.1