小编twi*_*itu的帖子

查找实现一组给定特征的结构

我遇到过一个案例,我有一个泛型需要满足两个特征。

pub struct FileReader<R: Read + Seek> { /* private fields */ }
Run Code Online (Sandbox Code Playgroud)

这些是标准特征,我可以单独找到它们的实现者。然后我可以看到哪些实现者是常见的并使用其中之一。

然而,这让我考虑是否有一种方法可以查询 - 货物文档、编译器或其他东西来找到实现给定一组特征的可能结构。当泛型具有许多特征条件和/或特征具有许多实现者时,这可能很有用。

Cargo 文档已经有一个用于查询的搜索栏,但它用于使用名称或函数类型进行搜索。没有一个像这样的升级查询。

traits rust rust-cargo rustdoc

6
推荐指数
0
解决办法
500
查看次数

导出使用 crate 中定义的函数的声明性宏

我正在尝试导出一个使用包中定义的某些函数的宏。像这样的东西,例如在一个名为的板条箱中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

我不想采用过程宏方式,因为这只是为了减少代码重复。有没有办法导出导入本地(但公共)函数的宏?

macros rust rust-crates rust-macros

3
推荐指数
1
解决办法
859
查看次数

标签 统计

rust ×2

macros ×1

rust-cargo ×1

rust-crates ×1

rust-macros ×1

rustdoc ×1

traits ×1