| 138 | |
| 139 | #[instrument(level = "trace")] |
| 140 | fn query(&mut self, counter: usize, statement: Statement) -> Result<Vec<QueryResult>, DbErr> { |
| 141 | if let Some(transaction) = &mut self.transaction { |
| 142 | transaction.push(statement); |
| 143 | } else { |
| 144 | self.transaction_log.push(Transaction::one(statement)); |
| 145 | } |
| 146 | if counter < self.query_results.len() { |
| 147 | match std::mem::replace( |
| 148 | &mut self.query_results[counter], |
| 149 | Err(query_err("this value has been consumed already")), |
| 150 | ) { |
| 151 | Ok(result) => Ok(result |
| 152 | .into_iter() |
| 153 | .map(|row| QueryResult { |
| 154 | row: QueryResultRow::Mock(row), |
| 155 | }) |
| 156 | .collect()), |
| 157 | Err(err) => Err(err), |
| 158 | } |
| 159 | } else { |
| 160 | Err(query_err("`query_results` buffer is empty.")) |
| 161 | } |
| 162 | } |
| 163 | |
| 164 | #[instrument(level = "trace")] |
| 165 | fn begin(&mut self) { |