首页 > 解决方案 > 如何在宏中编译期间列出给定类型的所有实现特征?

问题描述

我正在寻找一种方法来查找在编译期间为给定类型实现的所有特征,以便在宏中使用。

我的用例是我想编写一个宏来创建新类型结构并实现所有内部类型特征,或者至少是其中的一个子集。

标签: rust

解决方案


你不能。

Rustc 驱动程序

[…] 编译器的主要阶段是:

  1. 解析输入:初始 crate 解析
  2. 配置和扩展:解析#[cfg]属性、名称解析和扩展宏
  3. 运行分析通行证:在箱子上运行特征解析、类型检查、区域检查和其他杂项分析通行证
  4. 转换为 LLVM:转换为 LLVM IR 的内存形式并将其转换为可执行文件/目标文件

(重点是我的)

在完成特征解析之前扩展宏,因此在扩展宏时,类型信息是未知的。


推荐阅读