#rust #rust-macros
#Ржавчина #rust-макросы
Вопрос:
У меня есть такой код:
#[my_attribute]
impl<T> Foo<T> for Bar where T: Baz { ... }
Как получить Foo<T>
деталь из ItemImpl
?
Ответ №1:
trait_
Поле ItemImpl
содержит интересующую вас информацию
trait_: Option<(Option<Bang>, Path, For)>
Это Option
так, как блоки impl не должны реализовывать признак (например impl Baz { }
). Из внутреннего трехкорпуса вас интересует второй элемент, the Path
. Который содержит ваш Foo<T>
.
Комментарии:
1. Спасибо, уже нашел. Если кому-то интересно, код выглядит примерно так:
amp;trait_def.trait_.as_ref().unwrap().1