Replace Connection::iterate with Statement::into_iter

This commit is contained in:
Ivan Ukhov 2015-08-03 08:50:41 -04:00
parent 42515bc5ec
commit 75bd2d94b6
3 changed files with 9 additions and 9 deletions

View File

@ -3,7 +3,7 @@ use libc::{c_char, c_int, c_void};
use std::marker::PhantomData; use std::marker::PhantomData;
use std::path::Path; use std::path::Path;
use {Iterator, Result, Statement}; use {Result, Statement};
/// A database connection. /// A database connection.
pub struct Connection { pub struct Connection {
@ -60,12 +60,6 @@ impl Connection {
::statement::new(self.raw, statement) ::statement::new(self.raw, statement)
} }
/// Create an iterator over the resulting rows of a prepared statement.
#[inline]
pub fn iterate<'l, T: AsRef<str>>(&'l self, statement: T) -> Result<Iterator<'l>> {
::iterator::new(try!(::statement::new(self.raw, statement)))
}
/// Set a callback for handling busy events. /// Set a callback for handling busy events.
/// ///
/// The callback is triggered when the database cannot perform an operation /// The callback is triggered when the database cannot perform an operation

View File

@ -2,7 +2,7 @@ use ffi;
use libc::{c_double, c_int}; use libc::{c_double, c_int};
use std::marker::PhantomData; use std::marker::PhantomData;
use {Result, Type, Value}; use {Iterator, Result, Type, Value};
/// A prepared statement. /// A prepared statement.
pub struct Statement<'l> { pub struct Statement<'l> {
@ -100,6 +100,12 @@ impl<'l> Statement<'l> {
self.state = None; self.state = None;
Ok(()) Ok(())
} }
/// Upgrade the statement to an iterator.
#[inline]
pub fn into_iter(self) -> Result<Iterator<'l>> {
::iterator::new(self)
}
} }
impl<'l> Drop for Statement<'l> { impl<'l> Drop for Statement<'l> {

View File

@ -73,7 +73,7 @@ fn connection_set_busy_handler() {
fn iterator() { fn iterator() {
let connection = setup(":memory:"); let connection = setup(":memory:");
let statement = "SELECT id FROM users WHERE id = ?"; let statement = "SELECT id FROM users WHERE id = ?";
let mut iterator = ok!(connection.iterate(statement)); let mut iterator = ok!(connection.prepare(statement)).into_iter().unwrap();
ok!(iterator.start(&[Value::Integer(1)])); ok!(iterator.start(&[Value::Integer(1)]));
assert_eq!(ok!(ok!(iterator.next())), &[Value::Integer(1)]); assert_eq!(ok!(ok!(iterator.next())), &[Value::Integer(1)]);