在实现 proc 宏时如何检查类型是否实现了特征?

How do I check if a type implements a trait when implementing a proc macro?

我正在尝试创建一个 proc-macro 来派生和实现结构的特征,我需要结构中的所有字段实现 Display.

我该如何检查?

此外,如何检查属性是否也实现了 Iterator? (如果迭代器的项目也实现显示,我想处理)。

我正在使用 synquote 箱子。我设法解析了我的 struct 并生成了实现。但是对于 VecOption 这样的类型,我想检查它们是否实现了 Iterator 并正确处理了它。

syn::Field 结构具有 ty 属性,我认为这应该是一个起点,但查看文档我无法猜测任何方法来检查此类型是否实现了某个特征.

将特征边界 and/or static assertions 添加到生成的代码中。类型信息可用之前的宏 运行,因为它们会影响类型信息。