Merge pull request #95 from jamwt/remove_coll_traits
Move len/clear from trait implementations to inherent methods
This commit is contained in:
@@ -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 {
|
||||
@@ -303,18 +313,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<Vec<Vec<u8>>>,
|
||||
typed: Option<Box<HeaderFormat + Send + Sync>>
|
||||
@@ -528,5 +526,27 @@ 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);
|
||||
// Redundant, should not increase count.
|
||||
headers.set(ContentLength(20));
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user