aboutsummaryrefslogtreecommitdiff
path: root/src/show.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/show.rs')
-rw-r--r--src/show.rs47
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\