我遇到过一个案例,我有一个泛型需要满足两个特征。
pub struct FileReader<R: Read + Seek> { /* private fields */ }
Run Code Online (Sandbox Code Playgroud)
这些是标准特征,我可以单独找到它们的实现者。然后我可以看到哪些实现者是常见的并使用其中之一。
然而,这让我考虑是否有一种方法可以查询 - 货物文档、编译器或其他东西来找到实现给定一组特征的可能结构。当泛型具有许多特征条件和/或特征具有许多实现者时,这可能很有用。
Cargo 文档已经有一个用于查询的搜索栏,但它用于使用名称或函数类型进行搜索。没有一个像这样的升级查询。
我正在尝试导出一个使用包中定义的某些函数的宏。像这样的东西,例如在一个名为的板条箱中a_macro_a_day
// lib.rs
pub fn a() {}
#[macro_export]
macro_rules! impl_helper_funcs {
use crate::a; // error unresolved import
use a_macro_a_day::a; // error unresolved import
fn b() {
...
a() // call imported a here
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试过使用各种组合use来导入a,但错误总是显示宏定义为unresolved import crateor unresolved import a_macro_a_day。
我不想采用过程宏方式,因为这只是为了减少代码重复。有没有办法导出导入本地(但公共)函数的宏?