百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
R

reflect

> 编程语言
开源

用于开发强大的程序性宏的编译时反射 API(概念验证)

782 stars0 点赞0 次浏览
访问官网GitHub

工具介绍

用于开发强大的程序性宏的编译时反射 API(概念验证)

我以为 Rust 没有反射 ... ?

我现有的 syn 和 quote 库以超级通用的方式处理程序宏的问题空间,非常适合大约 95% 的用例。然而,通用性带来了运行在相对低层次抽象的代价。宏作者负责每个单个的尖括号、生命周期、类型参数、特性约束和虚拟数据的位置。涉及大量的领域知识,很少有人能够使用这种方法可靠地生成稳健的宏。

这里探讨的设计重点在于如何让所有的边缘情况消失 — 也就是说,如果您的宏递归方法适用于最基本的情况,那么它也适用于任何棘手的情况。

宏作者使用此 API 来表达其宏的逻辑,使用 reflect::Value 等类型来检索函数参数,访问数据结构的字段,调用函数等。重要的是,在该模型中没有通用类型或虚拟数据。一切都只是一个 reflect::Value,其类型在运行时是其概念上的单形类型。

与此同时,库正在跟踪控制流和函数调用,以构建作者宏的一个完全通用和可靠的过程实现。最终的代码将在正确的位置包含所有的小括号、生命周期、边界和虚拟类型,而不需要作者考虑这些问题。反射 API 只是定义过程宏的一种手段。库会将其全部消除,并生成无任何实际错误的清晰的 Rust 源代码。

Issues· 18 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

Rust

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言