зависит от trait'а Foo! (т.е. вызывает методы этого трейта у объектов). оба определены в модуле crate::foo, если что. соответственно, чтобы использовать этот макрос из другого модуля, придется импортить и макро и трейт через use crate::foo::{foo, Foo}, иначе будет ошибка "no method named ... in this scope".
вопрос: как переписать макро, чтобы не нужно было вручную импортить Foo каждый раз, даже когда он сам в модуле не используется, а нужен только для работы макро?
Внутри макроса использовать $crate::foo::Foo, именно с долларом
это работает для зависимостей, которые явно прописываются в макро, а вот трейты используются неявно (например object.bar() где bar это метод из трейта Foo). проблема в том, что я не понимаю как сделать использование трейта явным, чтобы я мог полный путь к нему прописать.
Обсуждают сегодня