From 877c683089ef2e240fc312613d9bf227690b0825 Mon Sep 17 00:00:00 2001 From: Richard Newman Date: Mon, 5 Feb 2018 17:17:30 -0800 Subject: [PATCH] And some more. --- tolstoy/src/tx_processor.rs | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/tolstoy/src/tx_processor.rs b/tolstoy/src/tx_processor.rs index e79d2b14..143e5f6d 100644 --- a/tolstoy/src/tx_processor.rs +++ b/tolstoy/src/tx_processor.rs @@ -18,7 +18,6 @@ use errors::{ }; use mentat_db::{ - entids, TypedSQLValue, }; @@ -121,6 +120,16 @@ where T: Sized + Iterator> + 't { } } +fn to_tx_part(row: &::rusqlite::Row) -> Result { + Ok(TxPart { + e: row.get(0), + a: row.get(1), + v: TypedValue::from_sql_value_pair(row.get(2), row.get(5))?, + tx: row.get(3), + added: row.get(4), + }) +} + impl Processor { pub fn process(sqlite: &rusqlite::Connection, receiver: &mut R) -> Result<()> where R: TxReceiver { @@ -128,20 +137,9 @@ impl Processor { "SELECT e, a, v, tx, added, value_type_tag FROM transactions ORDER BY tx" )?; - let mut rows = stmt.query_and_then(&[], |row| -> Result { - Ok(TxPart { - e: row.get(0), - a: row.get(1), - v: TypedValue::from_sql_value_pair(row.get(2), row.get(5))?, - tx: row.get(3), - added: row.get(4), - }) - })?; - + let mut rows = stmt.query_and_then(&[], to_tx_part)?.peekable(); let mut current_tx = None; - - let mut peekable = rows.peekable(); - while let Some(row) = peekable.next() { + while let Some(row) = rows.next() { let datom = row?; // if current_tx == Some(row.tx) @@ -153,7 +151,7 @@ impl Processor { current_tx = Some(datom.tx); receiver.tx( datom.tx, - &mut DatomsIterator::new(&datom, &mut peekable) + &mut DatomsIterator::new(&datom, &mut rows) )?; continue; } @@ -162,7 +160,7 @@ impl Processor { current_tx = Some(datom.tx); receiver.tx( datom.tx, - &mut DatomsIterator::new(&datom, &mut peekable) + &mut DatomsIterator::new(&datom, &mut rows) )?; } }