我正在尝试写一个宏来处理元组类型中的每一个类型。元组类型是从函数的泛型类型参数传递给宏的。
例如
第一个月print_type_ids::<(i32,f32,&str)>()
应打印3个不同的类型ID。
但是当元组类型作为泛型类型参数传递给宏时,我无法在元组类型内部进行匹配。
我的代码到目前为止:
macro_rules! my_macro {
( ($($x:ty),+) ) => {
{
$(
println!("{:?}",std::any::TypeId::of::<$x>());
)+
}
};
}
fn print_type_ids<T:'static>() {
my_macro!(T); //error, no match for this
}
fn main() {
print_type_ids::<(i32,f32)>();
my_macro!((i32,f32)); //works, prints twice, once for each type
}
我发现了两个例子,看起来它们应该能解决我的问题,但没能理解它们在做什么。
one from Serde
let (log, operation_state_id) = serde_json::from_slice::<(String, String)>(serialized_tuple.as_bytes()).unwrap();
let t : (u32, u16) = num::Bounded::max_value();
1条答案
按热度按时间9gm1akwq1#
借了一些