diff --git a/src/bank.rs b/src/bank.rs index 8441b07a8..614bf26bd 100644 --- a/src/bank.rs +++ b/src/bank.rs @@ -792,10 +792,8 @@ mod tests { // Write the given entries to a file and then return a file iterator to them. fn to_file_iter(entries: impl Iterator) -> impl Iterator { - let entries: Vec<_> = entries.collect(); - let mut file = Cursor::new(vec![]); - EntryWriter::write_entries(&mut file, &entries).unwrap(); + EntryWriter::write_entries(&mut file, entries).unwrap(); file.seek(SeekFrom::Start(0)).unwrap(); let reader = BufReader::new(file); diff --git a/src/bin/genesis.rs b/src/bin/genesis.rs index f927ecb00..bdbee0d04 100644 --- a/src/bin/genesis.rs +++ b/src/bin/genesis.rs @@ -26,6 +26,6 @@ fn main() -> Result<(), Box> { let mint: Mint = serde_json::from_str(&buffer)?; let mut writer = stdout(); - EntryWriter::write_entries(&mut writer, &mint.create_entries())?; + EntryWriter::write_entries(&mut writer, mint.create_entries())?; Ok(()) } diff --git a/src/entry_writer.rs b/src/entry_writer.rs index e8b86a456..3b8a862a8 100644 --- a/src/entry_writer.rs +++ b/src/entry_writer.rs @@ -19,13 +19,16 @@ impl<'a, W: Write> EntryWriter<'a, W> { } fn write_entry(writer: &mut W, entry: &Entry) -> io::Result<()> { - let serialized = serde_json::to_string(&entry).unwrap(); + let serialized = serde_json::to_string(entry).unwrap(); writeln!(writer, "{}", serialized) } - pub fn write_entries(writer: &mut W, entries: &[Entry]) -> io::Result<()> { + pub fn write_entries(writer: &mut W, entries: I) -> io::Result<()> + where + I: IntoIterator, + { for entry in entries { - Self::write_entry(writer, entry)?; + Self::write_entry(writer, &entry)?; } Ok(()) }