diff options
author | Alex Crichton <alex@alexcrichton.com> | 2016-09-07 10:24:35 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-09-07 10:24:35 -0700 |
commit | c0a0d0d7900fccfc12b52340e88167892c239141 (patch) | |
tree | 3cf95fd05e854d90c7e180f178ddd974e486ff7d /src | |
parent | 61dd5585f572b6b8ac2d45811cbb97430d82832f (diff) | |
parent | 89384b1e0cd9b567060d74fb4554cd1de84352d0 (diff) | |
download | milf-rs-c0a0d0d7900fccfc12b52340e88167892c239141.tar.gz milf-rs-c0a0d0d7900fccfc12b52340e88167892c239141.zip |
Merge pull request #111 from nabijaczleweli/master
Don't space out the first table or array if not needed
Diffstat (limited to 'src')
-rw-r--r-- | src/display.rs | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/display.rs b/src/display.rs index 6891530..f563b77 100644 --- a/src/display.rs +++ b/src/display.rs @@ -57,6 +57,7 @@ fn write_str(f: &mut fmt::Formatter, s: &str) -> fmt::Result { impl<'a, 'b> Printer<'a, 'b> { fn print(&mut self, table: &'a TomlTable) -> fmt::Result { + let mut space_out_first = false; for (k, v) in table.iter() { match *v { Table(..) => continue, @@ -67,13 +68,17 @@ impl<'a, 'b> Printer<'a, 'b> { } _ => {} } + space_out_first = true; try!(writeln!(self.output, "{} = {}", Key(&[k]), v)); } - for (k, v) in table.iter() { + for (i, (k, v)) in table.iter().enumerate() { match *v { Table(ref inner) => { self.stack.push(k); - try!(writeln!(self.output, "\n[{}]", Key(&self.stack))); + if space_out_first || i != 0 { + try!(write!(self.output, "\n")); + } + try!(writeln!(self.output, "[{}]", Key(&self.stack))); try!(self.print(inner)); self.stack.pop(); } @@ -83,8 +88,11 @@ impl<'a, 'b> Printer<'a, 'b> { _ => continue } self.stack.push(k); - for inner in inner.iter() { - try!(writeln!(self.output, "\n[[{}]]", Key(&self.stack))); + for (j, inner) in inner.iter().enumerate() { + if space_out_first || i != 0 || j != 0 { + try!(write!(self.output, "\n")); + } + try!(writeln!(self.output, "[[{}]]", Key(&self.stack))); match *inner { Table(ref inner) => try!(self.print(inner)), _ => panic!("non-heterogeneous toml array"), |