Неразрешенный импорт при вызове макроса, определенного во внешнем ящике
Я пытаюсь реализовать пользовательский заголовок HTTP с помощью макроса impl_header из гипер-ящика, но кажется, что он не может разрешить hyper::header
модуль.
Вот мой код:
#[macro_use] extern crate hyper;
use hyper::header;
struct CustomHeader;
impl_header!(CustomHeader, "value", String);
И вот ошибка компилятора:
<hyper macros>:11:14: 11:20 error: unresolved import `header::HeaderFormat`. Maybe a missing `extern crate header`?
<hyper macros>:11 Result { use header:: HeaderFormat ; self . fmt_header ( f ) } } }
^~~~~~
<hyper macros>:1:1: 11:67 note: in expansion of impl_header!
lib.rs:4:1: 4:45 note: expansion site
error: aborting due to previous error
Could not compile `macro_issue`.
Любая подсказка, почему это происходит и как я могу это исправить?
Спасибо
1 ответ
Решение
Я согласен с Ренато, что это проблема с гипер, и вы должны сообщить об ошибке (или, что еще лучше, запрос на отправку!). Если вы хотите обойти это сейчас, вы можете реэкспортировать header
как свой собственный:
#[macro_use]
extern crate hyper;
pub use hyper::header as header;
struct CustomHeader;
impl_header!(CustomHeader, "value", String);
fn main() {}
К сожалению, это просто открывает новую волну ошибок, которые я дам вам понять!