在实现 proc 宏时如何检查类型是否实现了特征?
How do I check if a type implements a trait when implementing a proc macro?
我正在尝试创建一个 proc-macro
来派生和实现结构的特征,我需要结构中的所有字段实现 Display
.
我该如何检查?
此外,如何检查属性是否也实现了 Iterator
? (如果迭代器的项目也实现显示,我想处理)。
我正在使用 syn
和 quote
箱子。我设法解析了我的 struct
并生成了实现。但是对于 Vec
和 Option
这样的类型,我想检查它们是否实现了 Iterator
并正确处理了它。
syn::Field
结构具有 ty
属性,我认为这应该是一个起点,但查看文档我无法猜测任何方法来检查此类型是否实现了某个特征.
将特征边界 and/or static assertions 添加到生成的代码中。类型信息可用之前的宏 运行,因为它们会影响类型信息。
我正在尝试创建一个 proc-macro
来派生和实现结构的特征,我需要结构中的所有字段实现 Display
.
我该如何检查?
此外,如何检查属性是否也实现了 Iterator
? (如果迭代器的项目也实现显示,我想处理)。
我正在使用 syn
和 quote
箱子。我设法解析了我的 struct
并生成了实现。但是对于 Vec
和 Option
这样的类型,我想检查它们是否实现了 Iterator
并正确处理了它。
syn::Field
结构具有 ty
属性,我认为这应该是一个起点,但查看文档我无法猜测任何方法来检查此类型是否实现了某个特征.
将特征边界 and/or static assertions 添加到生成的代码中。类型信息可用之前的宏 运行,因为它们会影响类型信息。