Drop the lifetime parameter of Database

This commit is contained in:
Ivan Ukhov 2015-06-01 11:39:22 -04:00
parent 2cdf79bca0
commit 475fa14c0c
3 changed files with 11 additions and 11 deletions

View File

@ -6,17 +6,17 @@ use std::path::Path;
use {Result, Statement};
/// A database.
pub struct Database<'l> {
pub struct Database {
raw: *mut raw::sqlite3,
phantom: PhantomData<&'l raw::sqlite3>,
phantom: PhantomData<raw::sqlite3>,
}
/// A callback triggered for each row of an executed SQL query.
pub type ExecuteCallback<'l> = FnMut(Vec<(String, String)>) -> bool + 'l;
impl<'l> Database<'l> {
impl Database {
/// Open a database.
pub fn open(path: &Path) -> Result<Database<'l>> {
pub fn open(path: &Path) -> Result<Database> {
let mut raw = 0 as *mut _;
unsafe {
success!(raw::sqlite3_open(path_to_c_str!(path), &mut raw));
@ -25,8 +25,8 @@ impl<'l> Database<'l> {
}
/// Execute an SQL statement.
pub fn execute<'c>(&mut self, sql: &str,
callback: Option<&mut ExecuteCallback<'c>>) -> Result<()> {
pub fn execute<'l>(&mut self, sql: &str,
callback: Option<&mut ExecuteCallback<'l>>) -> Result<()> {
unsafe {
match callback {
@ -49,12 +49,12 @@ impl<'l> Database<'l> {
/// Create a prepared statement.
#[inline]
pub fn statement(&mut self, sql: &str) -> Result<Statement<'l>> {
pub fn statement<'l>(&'l mut self, sql: &str) -> Result<Statement<'l>> {
::statement::new(self, sql)
}
}
impl<'l> Drop for Database<'l> {
impl Drop for Database {
#[inline]
fn drop(&mut self) {
unsafe { raw::sqlite3_close(self.raw) };

View File

@ -65,6 +65,6 @@ pub use statement::{Statement, Binding, Value};
/// Open a database.
#[inline]
pub fn open<'l>(path: &std::path::Path) -> Result<Database<'l>> {
pub fn open(path: &std::path::Path) -> Result<Database> {
Database::open(path)
}

View File

@ -7,7 +7,7 @@ use {Database, Result, ResultCode};
/// A prepared statement.
pub struct Statement<'l> {
raw: *mut raw::sqlite3_stmt,
phantom: PhantomData<&'l raw::sqlite3_stmt>,
phantom: PhantomData<(&'l raw::sqlite3, raw::sqlite3_stmt)>,
}
/// A binding of a prepared statement.
@ -101,7 +101,7 @@ impl Value for String {
}
#[inline]
pub fn new<'l>(database: &mut Database<'l>, sql: &str) -> Result<Statement<'l>> {
pub fn new<'l>(database: &'l mut Database, sql: &str) -> Result<Statement<'l>> {
let mut raw = 0 as *mut _;
unsafe {
success!(database, raw::sqlite3_prepare(::database::as_raw(database), str_to_c_str!(sql),