Rust 如何将参数从函数传递到宏
解释一下,我有宏信息!(“你好世界”)来自 它在任何地方都能正常工作,但在cargo integration test的common.rs文件中不能正常工作。由于宏的使用,必须在根模块中声明(用于导入),然后提供子模块。但是在集成测试用例中,我们没有根模块,也不能为common.rs(子模块)提供宏 例1: 模块父级 国防部 在这种情况下,子级可以毫无问题地使用宏 例2: 没有模块(作为集成测试用例),只有测试文件 一些测试Rust 如何将参数从函数传递到宏,rust,Rust,解释一下,我有宏信息!(“你好世界”)来自 它在任何地方都能正常工作,但在cargo integration test的common.rs文件中不能正常工作。由于宏的使用,必须在根模块中声明(用于导入),然后提供子模块。但是在集成测试用例中,我们没有根模块,也不能为common.rs(子模块)提供宏 例1: 模块父级 国防部 在这种情况下,子级可以毫无问题地使用宏 例2: 没有模块(作为集成测试用例),只有测试文件 一些测试 #[macro_use] use extern crate some_
#[macro_use]
use extern crate some_crate;
mod child.
mod child
在这种情况下,子对象看不到宏,我们只能以这种方式提供宏使用
为了解决这个问题,我创建了一个util模块logger_util,它可以使用宏,然后导入到一些_test.r中
#[macro_use]
use extern crate some_crate;
mod child.
mod child
例3:
没有模块(作为集成测试用例),只有测试文件
一些测试
#[macro_use]
use extern crate some_crate;
mod child.
mod child
童装
use logger_util
fn foo() {
logger_util.use_macro()
}
记录器
#[macro_use]
extern crate some_crate;
pub fn use_macro() {
some_macro!("Hello world")
}
我的下一个问题是:
我怎样才能做到这一点:
fn foo() {
info!("{} {} ", 123, "hello world")
}
请从以下位置执行此操作:
fn foo() {
let print_data: SomeType = "{} {} ", 123, "hello world";
use_macro(print_data)
}
到logger_util.rs
pub fn use_macro(print_data: SomeType) {
info!("Hello world")
}
解决方案:
use logger_util;
fn foo() {
logger_util::use_macro(format_args!("{} {} ", 123, "hello world"))
}
use std::fmt::Arguments;
pub fn use_macro(args: Arguments) {
info!("{}", args)
}
为什么不使用
print\u data=format!(…
?SomeType的用途是什么?完全不清楚您在这里问什么,正如前面提到的,您的一些代码是未知的。请尝试进行适当的修改,看看您是否可以校对问题的其余部分。