1

我正在尝试使用hyper crate 中的impl_header宏来实现自定义 HTTP 标头,但它似乎无法解析该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`.

任何线索为什么会发生这种情况,我该如何解决?

谢谢

4

1 回答 1

3

我同意 Renato 的观点,这是 hyper 的一个问题,你应该提交一个错误(或者更好的是一个拉取请求!)。如果您现在想解决它,您可以重新导出header为您自己的:

#[macro_use]
extern crate hyper;

pub use hyper::header as header;

struct CustomHeader;
impl_header!(CustomHeader, "value", String);

fn main() {}

不幸的是,这只会解锁一波全新的错误,我会让你弄清楚!

于 2015-02-15T16:38:23.367 回答