Use IntoInterator to simplify write_entries() usage
This commit is contained in:
parent
6806a14a3f
commit
4e3526394e
|
@ -792,10 +792,8 @@ mod tests {
|
||||||
|
|
||||||
// Write the given entries to a file and then return a file iterator to them.
|
// Write the given entries to a file and then return a file iterator to them.
|
||||||
fn to_file_iter(entries: impl Iterator<Item = Entry>) -> impl Iterator<Item = Entry> {
|
fn to_file_iter(entries: impl Iterator<Item = Entry>) -> impl Iterator<Item = Entry> {
|
||||||
let entries: Vec<_> = entries.collect();
|
|
||||||
|
|
||||||
let mut file = Cursor::new(vec![]);
|
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();
|
file.seek(SeekFrom::Start(0)).unwrap();
|
||||||
|
|
||||||
let reader = BufReader::new(file);
|
let reader = BufReader::new(file);
|
||||||
|
|
|
@ -26,6 +26,6 @@ fn main() -> Result<(), Box<error::Error>> {
|
||||||
|
|
||||||
let mint: Mint = serde_json::from_str(&buffer)?;
|
let mint: Mint = serde_json::from_str(&buffer)?;
|
||||||
let mut writer = stdout();
|
let mut writer = stdout();
|
||||||
EntryWriter::write_entries(&mut writer, &mint.create_entries())?;
|
EntryWriter::write_entries(&mut writer, mint.create_entries())?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,13 +19,16 @@ impl<'a, W: Write> EntryWriter<'a, W> {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn write_entry(writer: &mut W, entry: &Entry) -> io::Result<()> {
|
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)
|
writeln!(writer, "{}", serialized)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn write_entries(writer: &mut W, entries: &[Entry]) -> io::Result<()> {
|
pub fn write_entries<I>(writer: &mut W, entries: I) -> io::Result<()>
|
||||||
|
where
|
||||||
|
I: IntoIterator<Item = Entry>,
|
||||||
|
{
|
||||||
for entry in entries {
|
for entry in entries {
|
||||||
Self::write_entry(writer, entry)?;
|
Self::write_entry(writer, &entry)?;
|
||||||
}
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue