Skip to content

Commit f1bff59

Browse files
committed
Implement Show for DList
1 parent 8e9e484 commit f1bff59

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

src/libcollections/dlist.rs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
use core::prelude::*;
2525

2626
use alloc::owned::Box;
27+
use core::fmt;
2728
use core::iter;
2829
use core::mem;
2930
use core::ptr;
@@ -608,6 +609,19 @@ impl<A: Clone> Clone for DList<A> {
608609
}
609610
}
610611

612+
impl<A: fmt::Show> fmt::Show for DList<A> {
613+
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
614+
try!(write!(f, "["));
615+
616+
for (i, e) in self.iter().enumerate() {
617+
if i != 0 { try!(write!(f, ", ")); }
618+
try!(write!(f, "{}", *e));
619+
}
620+
621+
write!(f, "]")
622+
}
623+
}
624+
611625
#[cfg(test)]
612626
mod tests {
613627
use std::prelude::*;
@@ -1027,6 +1041,17 @@ mod tests {
10271041
}
10281042
}
10291043

1044+
#[test]
1045+
fn test_show() {
1046+
let list: DList<int> = range(0, 10).collect();
1047+
assert!(list.to_str().as_slice() == "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]");
1048+
1049+
let list: DList<&str> = vec!["just", "one", "test", "more"].iter()
1050+
.map(|&s| s)
1051+
.collect();
1052+
assert!(list.to_str().as_slice() == "[just, one, test, more]");
1053+
}
1054+
10301055
#[cfg(test)]
10311056
fn fuzz_test(sz: int) {
10321057
let mut m: DList<int> = DList::new();

0 commit comments

Comments
 (0)