// Define the macro.
macro_rules! log_function {
($f:ident($($arg:expr),*)) => {{
println!("Calling function: {}", stringify!($f));
$f($($arg),*)
}};
}
// Some function for demonstration.
fn add(x: i32, y: i32) -> i32 {
x + y
}
fn main() {
// Use the macro.
let result = log_function!(add(5, 7));
println!("Result: {}", result);
}
Rust可能没有对Python风格的装饰器的内置支持,但这并不意味着我们无法设计自己的工具!借助Rust的宏观系统的力量,我们演示了如何使用log_function!
宏来制作Python风格的装饰器。
此上述构成代码日志函数名称在弹出动作之前。 add
功能是这种跨语言性能的舞台,突出了Python优雅简单性和Rust在单个和谐的代码库中的高辛烷值表现的非凡融合。