cloudevents/binding/http/
headers.rs

1use http::header::{AsHeaderName, HeaderMap, HeaderName, HeaderValue};
2
3use http;
4
5/// Any http library should be able to use the
6/// [`to_event`](super::to_event) function with an implementation of
7/// this trait.
8pub trait Headers<'a> {
9    type Iterator: Iterator<Item = (&'a HeaderName, &'a HeaderValue)>;
10    fn get<K: AsHeaderName>(&self, name: K) -> Option<&HeaderValue>;
11    fn iter(&'a self) -> Self::Iterator;
12}
13
14/// Implemention for the HeaderMap used by warp/reqwest
15impl<'a> Headers<'a> for HeaderMap<HeaderValue> {
16    type Iterator = http::header::Iter<'a, HeaderValue>;
17    fn get<K: AsHeaderName>(&self, name: K) -> Option<&HeaderValue> {
18        self.get(name)
19    }
20    fn iter(&'a self) -> Self::Iterator {
21        self.iter()
22    }
23}