Skip to content

Commit 80e39e1

Browse files
committed
now passes all
1 parent 5fb086a commit 80e39e1

File tree

4 files changed

+14
-19
lines changed

4 files changed

+14
-19
lines changed

src/headers/header_value.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,11 @@ impl<'a> PartialEq<&String> for HeaderValue {
122122
}
123123

124124
impl From<HeaderValues> for HeaderValue {
125-
fn from(other: HeaderValues) -> Self {
126-
other[0]
125+
fn from(mut other: HeaderValues) -> Self {
126+
other.inner.reverse();
127+
other
128+
.inner
129+
.pop()
130+
.expect("HeaderValues should contain at least one value")
127131
}
128132
}

src/headers/header_values.rs

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ use std::slice::SliceIndex;
1010
/// This always contains at least one header value.
1111
#[derive(Debug, Clone)]
1212
pub struct HeaderValues {
13-
inner: Vec<HeaderValue>,
13+
pub(crate) inner: Vec<HeaderValue>,
1414
}
1515

1616
impl HeaderValues {
@@ -30,7 +30,7 @@ impl HeaderValues {
3030
}
3131

3232
/// Returns the last `HeaderValue`.
33-
pub fn last(&mut self) -> &HeaderValue {
33+
pub fn last(&self) -> &HeaderValue {
3434
self.inner
3535
.last()
3636
.expect("HeaderValues must always contain at least one value")
@@ -66,7 +66,7 @@ impl FromIterator<HeaderValue> for HeaderValues {
6666
{
6767
let iter = iter.into_iter();
6868
let mut output = Vec::with_capacity(iter.size_hint().0);
69-
for v in output {
69+
for v in iter {
7070
output.push(v);
7171
}
7272
HeaderValues { inner: output }
@@ -147,13 +147,3 @@ impl<'a> IntoIterator for &'a HeaderValues {
147147
self.iter()
148148
}
149149
}
150-
151-
// impl<'a> IntoIterator for &'a mut HeaderValues {
152-
// type Item = &'a HeaderValue;
153-
// type IntoIter = ValuesMut<'a>;
154-
155-
// #[inline]
156-
// fn into_iter(self) -> Self::IntoIter {
157-
// self.iter_mut()
158-
// }
159-
// }

src/headers/values.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,9 @@ impl<'a> Iterator for Values<'a> {
6464

6565
#[inline]
6666
fn size_hint(&self) -> (usize, Option<usize>) {
67-
self.inner
68-
.map(|inner| inner.size_hint())
69-
.unwrap_or((0, None))
67+
match self.inner.as_ref() {
68+
Some(inner) => inner.size_hint(),
69+
None => (0, None),
70+
}
7071
}
7172
}

src/hyperium_http.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ fn headers_to_hyperium_headers(headers: &mut Headers, hyperium_headers: &mut htt
7171
let name = format!("{}", name).into_bytes();
7272
let name = http::header::HeaderName::from_bytes(&name).unwrap();
7373

74-
for value in values {
74+
for value in values.iter() {
7575
let value = format!("{}", value).into_bytes();
7676
let value = http::header::HeaderValue::from_bytes(&value).unwrap();
7777
hyperium_headers.append(&name, value);

0 commit comments

Comments
 (0)