rust - 如何在宏中编译期间列出给定类型的所有实现特征?
问题描述
我正在寻找一种方法来查找在编译期间为给定类型实现的所有特征,以便在宏中使用。
我的用例是我想编写一个宏来创建新类型结构并实现所有内部类型特征,或者至少是其中的一个子集。
解决方案
你不能。
Rustc 驱动程序:
[…] 编译器的主要阶段是:
- 解析输入:初始 crate 解析
- 配置和扩展:解析
#[cfg]
属性、名称解析和扩展宏- 运行分析通行证:在箱子上运行特征解析、类型检查、区域检查和其他杂项分析通行证
- 转换为 LLVM:转换为 LLVM IR 的内存形式并将其转换为可执行文件/目标文件
(重点是我的)
在完成特征解析之前扩展宏,因此在扩展宏时,类型信息是未知的。
推荐阅读
- go - type *url.URL 没有字段或方法 ParseRequestURI
- python - 如何从python中的4d矩阵切片?
- python - 将numpy数组列提取到字典中
- android - 共享首选项上的辅助功能设置更改值
- php - PostgreQL 从多维数组类型的 Json 字段中获取数据
- ruby-on-rails - 在循环中查找匹配项
- netty - ByteToMessageDecoder 网络
- cuda - 是否有将 half2 转换为 float2 的主机功能,反之亦然?
- javascript - 检查用户过去是否已经访问过链接
- powerquery - Power Query,拆分列日期和时间不起作用