From 68a652ed2f51d366bb8033497e6dfe545895410e Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Thu, 23 Jul 2026 08:08:33 +0800 Subject: feat: scaffold crate structure and implement core macros Add the project skeleton, LICENSE files, README, Makefile, doc examples, and the initial implementation of `#[func]`, `invoke!`, and `select!` procedural macros. --- test/src/test_func.rs | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 test/src/test_func.rs (limited to 'test/src/test_func.rs') diff --git a/test/src/test_func.rs b/test/src/test_func.rs new file mode 100644 index 0000000..71fe365 --- /dev/null +++ b/test/src/test_func.rs @@ -0,0 +1,36 @@ +#[might_be_async::func] +fn identity(x: i32) -> i32 { + x +} + +#[cfg(not(feature = "metadata_async"))] +#[test] +fn test_func_identity() { + assert_eq!(identity(42), 42); +} + +#[might_be_async::func] +fn first(a: T, _b: T) -> T +where + T: std::fmt::Debug, +{ + a.clone() +} + +#[cfg(not(feature = "metadata_async"))] +#[test] +fn test_func_generic() { + assert_eq!(first(1, 2), 1); + assert_eq!(first("a", "b"), "a"); +} + +#[might_be_async::func("custom_ft")] +fn triple(x: i32) -> i32 { + x * 3 +} + +#[cfg(not(feature = "metadata_async"))] +#[test] +fn test_func_custom_feature() { + assert_eq!(triple(3), 9); +} -- cgit