使用 syn 获取 ItemImpl 的特征名称和通用参数

Get trait name and generic parameters for ItemImpl with syn

我有这样的代码:

#[my_attribute]
impl<T> Foo<T> for Bar where T: Baz { ... }

如何从 ItemImpl 中获取 Foo<T> 部分?

The trait_ field of ItemImpl包含您感兴趣的信息

trait_: Option<(Option<Bang>, Path, For)>

这是一个 Option,因为 impl 块不必实现特征(例如 impl Baz { })。从内部三元组,您对第二项 Path 感兴趣。其中包含您的 Foo<T>.