diff options
| author | Adolfo OchagavĂa <aochagavia92@gmail.com> | 2014-06-07 15:01:44 +0200 |
|---|---|---|
| committer | Adolfo OchagavĂa <aochagavia92@gmail.com> | 2014-06-07 15:01:44 +0200 |
| commit | f1bff592b1d3dff14459374af930ae3fee6253ce (patch) | |
| tree | 14e0fdf966dbb8eb3972444b008b23e36d696253 /src | |
| parent | 8e9e484d7089590ce63bfe21723d7ee0c50be8f4 (diff) | |
| download | rust-f1bff592b1d3dff14459374af930ae3fee6253ce.tar.gz rust-f1bff592b1d3dff14459374af930ae3fee6253ce.zip | |
Implement Show for DList
Diffstat (limited to 'src')
| -rw-r--r-- | src/libcollections/dlist.rs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/libcollections/dlist.rs b/src/libcollections/dlist.rs index 94c617b58e8..9d0e8e83698 100644 --- a/src/libcollections/dlist.rs +++ b/src/libcollections/dlist.rs @@ -24,6 +24,7 @@ use core::prelude::*; use alloc::owned::Box; +use core::fmt; use core::iter; use core::mem; use core::ptr; @@ -608,6 +609,19 @@ impl<A: Clone> Clone for DList<A> { } } +impl<A: fmt::Show> fmt::Show for DList<A> { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + try!(write!(f, "[")); + + for (i, e) in self.iter().enumerate() { + if i != 0 { try!(write!(f, ", ")); } + try!(write!(f, "{}", *e)); + } + + write!(f, "]") + } +} + #[cfg(test)] mod tests { use std::prelude::*; @@ -1027,6 +1041,17 @@ mod tests { } } + #[test] + fn test_show() { + let list: DList<int> = range(0, 10).collect(); + assert!(list.to_str().as_slice() == "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]"); + + let list: DList<&str> = vec!["just", "one", "test", "more"].iter() + .map(|&s| s) + .collect(); + assert!(list.to_str().as_slice() == "[just, one, test, more]"); + } + #[cfg(test)] fn fuzz_test(sz: int) { let mut m: DList<int> = DList::new(); |
