Merge pull request #656 from psdh/addPartialEqHead
feat(headers): add PartialEq impl for Headers struct
This commit is contained in:
		| @@ -309,6 +309,22 @@ impl Headers { | |||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | impl PartialEq for Headers { | ||||||
|  |     fn eq(&self, other: &Headers) -> bool { | ||||||
|  |         if self.len() != other.len() { | ||||||
|  |             return false; | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         for header in self.iter() { | ||||||
|  |             match other.get_raw(header.name()) { | ||||||
|  |                 Some(val) if val == self.get_raw(header.name()).unwrap() => {}, | ||||||
|  |                 _ => { return false; } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         return true; | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
| impl fmt::Display for Headers { | impl fmt::Display for Headers { | ||||||
|    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { |    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { | ||||||
|         for header in self.iter() { |         for header in self.iter() { | ||||||
| @@ -695,6 +711,36 @@ mod tests { | |||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     #[test] | ||||||
|  |     fn test_eq() { | ||||||
|  |         let mut headers1 = Headers::new(); | ||||||
|  |         let mut headers2 = Headers::new(); | ||||||
|  |  | ||||||
|  |         assert_eq!(headers1, headers2); | ||||||
|  |  | ||||||
|  |         headers1.set(ContentLength(11)); | ||||||
|  |         headers2.set(Host {hostname: "foo.bar".to_owned(), port: None}); | ||||||
|  |         assert!(headers1 != headers2); | ||||||
|  |  | ||||||
|  |         headers1 = Headers::new(); | ||||||
|  |         headers2 = Headers::new(); | ||||||
|  |  | ||||||
|  |         headers1.set(ContentLength(11)); | ||||||
|  |         headers2.set(ContentLength(11)); | ||||||
|  |         assert_eq!(headers1, headers2); | ||||||
|  |  | ||||||
|  |         headers1.set(ContentLength(10)); | ||||||
|  |         assert!(headers1 != headers2); | ||||||
|  |  | ||||||
|  |         headers1 = Headers::new(); | ||||||
|  |         headers2 = Headers::new(); | ||||||
|  |  | ||||||
|  |         headers1.set(Host { hostname: "foo.bar".to_owned(), port: None }); | ||||||
|  |         headers1.set(ContentLength(11)); | ||||||
|  |         headers2.set(ContentLength(11)); | ||||||
|  |         assert!(headers1 != headers2); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     #[cfg(feature = "nightly")] |     #[cfg(feature = "nightly")] | ||||||
|     #[bench] |     #[bench] | ||||||
|     fn bench_headers_new(b: &mut Bencher) { |     fn bench_headers_new(b: &mut Bencher) { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user