From bef7da153cfeada56ca8f8da823b559ef71138db Mon Sep 17 00:00:00 2001 From: Jamie Turner Date: Mon, 3 Nov 2014 18:30:16 -0800 Subject: [PATCH 1/3] Remove collections trait implementations. Rust has removed them due to collections reform RFC: RFC: https://github.com/rust-lang/rfcs/pull/235/files Commit: https://github.com/rust-lang/rust/commit/21ac985af44f4e2470ef6f4c0eb4d72daf5a6497 --- src/header/mod.rs | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/src/header/mod.rs b/src/header/mod.rs index 307593e5..898be4f6 100644 --- a/src/header/mod.rs +++ b/src/header/mod.rs @@ -303,18 +303,6 @@ impl<'a> fmt::Show for HeaderView<'a> { } } -impl Collection for Headers { - fn len(&self) -> uint { - self.data.len() - } -} - -impl Mutable for Headers { - fn clear(&mut self) { - self.data.clear() - } -} - struct Item { raw: Option>>, typed: Option> From 14687ad6d22626070595b2716e28cb9da08ffbe5 Mon Sep 17 00:00:00 2001 From: Jamie Turner Date: Mon, 3 Nov 2014 21:06:30 -0800 Subject: [PATCH 2/3] Re-add len() and clear() as inherent Headers methods. --- src/header/mod.rs | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/header/mod.rs b/src/header/mod.rs index 898be4f6..40172e96 100644 --- a/src/header/mod.rs +++ b/src/header/mod.rs @@ -268,6 +268,16 @@ impl Headers { inner: self.data.iter() } } + + /// Returns the number of headers in the map. + pub fn len(&self) -> uint { + self.data.len() + } + + /// Remove all headers from the map. + pub fn clear(&mut self) { + self.data.clear() + } } impl fmt::Show for Headers { @@ -516,5 +526,24 @@ mod tests { assert_eq!(headers.get_raw("Content-length").unwrap(), [b"20".to_vec()][]); assert_eq!(headers.get(), Some(&ContentLength(20))); } + + #[test] + fn test_len() { + let mut headers = Headers::new(); + headers.set(ContentLength(10)); + assert_eq!(headers.len(), 1); + headers.set(ContentType(Mime(Text, Plain, vec![]))); + assert_eq!(headers.len(), 2); + } + + #[test] + fn test_clear() { + let mut headers = Headers::new(); + headers.set(ContentLength(10)); + headers.set(ContentType(Mime(Text, Plain, vec![]))); + assert_eq!(headers.len(), 2); + headers.clear(); + assert_eq!(headers.len(), 0); + } } From f88837f17239f91167f1a0e959a808597165fb68 Mon Sep 17 00:00:00 2001 From: Jamie Turner Date: Mon, 3 Nov 2014 21:08:55 -0800 Subject: [PATCH 3/3] Add len() test with redundant header. --- src/header/mod.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/header/mod.rs b/src/header/mod.rs index 40172e96..444671a5 100644 --- a/src/header/mod.rs +++ b/src/header/mod.rs @@ -534,6 +534,9 @@ mod tests { assert_eq!(headers.len(), 1); headers.set(ContentType(Mime(Text, Plain, vec![]))); assert_eq!(headers.len(), 2); + // Redundant, should not increase count. + headers.set(ContentLength(20)); + assert_eq!(headers.len(), 2); } #[test]