diff options
Diffstat (limited to 'src/show.rs')
-rw-r--r-- | src/show.rs | 47 |
1 files changed, 18 insertions, 29 deletions
diff --git a/src/show.rs b/src/show.rs index cfa43a2..af1eba0 100644 --- a/src/show.rs +++ b/src/show.rs @@ -1,7 +1,6 @@ use std::fmt; use Table as TomlTable; -use Array as TomlArray; use Value::{self, String, Integer, Float, Boolean, Datetime, Array, Table}; struct Printer<'a, 'b:'a> { @@ -41,9 +40,13 @@ impl fmt::String for Value { p.print(t) } Array(ref a) => { - let mut p = Printer { output: f, stack: Vec::new() }; - p.print_array(a) - }, + try!(write!(f, "[")); + for (i, v) in a.iter().enumerate() { + if i != 0 { try!(write!(f, ", ")); } + try!(write!(f, "{}", v)); + } + write!(f, "]") + } } } } @@ -93,20 +96,6 @@ impl<'a, 'b> Printer<'a, 'b> { } Ok(()) } - - fn print_array(&mut self, array: &'a TomlArray) -> fmt::Result { - try!(self.output.write_str("[")); - let mut first = true; - for item in array.iter() { - if first { - first = false; - } else { - try!(self.output.write_str(", ")); - } - try!((&item as &fmt::String).fmt(self.output)); - } - self.output.write_str("]") - } } #[cfg(test)] @@ -116,7 +105,7 @@ mod tests { use Value::{String, Integer, Float, Boolean, Datetime, Array, Table}; use std::collections::BTreeMap; - macro_rules! map( ($($k:expr, $v:expr),*) => ({ + macro_rules! map( ($($k:expr => $v:expr),*) => ({ let mut _m = BTreeMap::new(); $(_m.insert($k.to_string(), $v);)* _m @@ -146,12 +135,12 @@ mod tests { fn table() { assert_eq!(Table(map! { }).to_string().as_slice(), ""); - assert_eq!(Table(map! { "test", Integer(2) }).to_string().as_slice(), + assert_eq!(Table(map! { "test" => Integer(2) }).to_string().as_slice(), "test = 2\n"); assert_eq!(Table(map! { - "test", Integer(2), - "test2", Table(map! { - "test", String("wut".to_string()) + "test" => Integer(2), + "test2" => Table(map! { + "test" => String("wut".to_string()) }) }).to_string().as_slice(), "test = 2\n\ @@ -159,9 +148,9 @@ mod tests { [test2]\n\ test = \"wut\"\n"); assert_eq!(Table(map! { - "test", Integer(2), - "test2", Table(map! { - "test", String("wut".to_string()) + "test" => Integer(2), + "test2" => Table(map! { + "test" => String("wut".to_string()) }) }).to_string().as_slice(), "test = 2\n\ @@ -169,9 +158,9 @@ mod tests { [test2]\n\ test = \"wut\"\n"); assert_eq!(Table(map! { - "test", Integer(2), - "test2", Array(vec![Table(map! { - "test", String("wut".to_string()) + "test" => Integer(2), + "test2" => Array(vec![Table(map! { + "test" => String("wut".to_string()) })]) }).to_string().as_slice(), "test = 2\n\ |