diff --git a/libsqlite3-sys/src/lib.rs b/libsqlite3-sys/src/lib.rs index b4b5186..5d37276 100644 --- a/libsqlite3-sys/src/lib.rs +++ b/libsqlite3-sys/src/lib.rs @@ -5,7 +5,7 @@ extern crate libc; pub use self::bindgen::*; use std::mem; -use libc::{c_int, c_void}; +use libc::c_int; mod bindgen; @@ -48,10 +48,12 @@ pub const SQLITE_TEXT : c_int = 3; pub const SQLITE_BLOB : c_int = 4; pub const SQLITE_NULL : c_int = 5; -pub type SqliteDestructor = extern "C" fn(*mut c_void); +pub fn SQLITE_STATIC() -> sqlite3_destructor_type { + Some(unsafe { mem::transmute(0isize) }) +} -pub fn SQLITE_TRANSIENT() -> SqliteDestructor { - unsafe { mem::transmute(-1isize) } +pub fn SQLITE_TRANSIENT() -> sqlite3_destructor_type { + Some(unsafe { mem::transmute(-1isize) }) } pub fn code_to_str(code: c_int) -> &'static str { diff --git a/src/types.rs b/src/types.rs index 1900d1d..1d30b30 100644 --- a/src/types.rs +++ b/src/types.rs @@ -104,7 +104,7 @@ impl<'a> ToSql for &'a str { unsafe fn bind_parameter(&self, stmt: *mut sqlite3_stmt, col: c_int) -> c_int { match str_to_cstring(self) { Ok(c_str) => ffi::sqlite3_bind_text(stmt, col, c_str.as_ptr(), -1, - Some(ffi::SQLITE_TRANSIENT())), + ffi::SQLITE_TRANSIENT()), Err(_) => ffi::SQLITE_MISUSE, } } @@ -119,8 +119,7 @@ impl ToSql for String { impl<'a> ToSql for &'a [u8] { unsafe fn bind_parameter(&self, stmt: *mut sqlite3_stmt, col: c_int) -> c_int { ffi::sqlite3_bind_blob( - stmt, col, mem::transmute(self.as_ptr()), self.len() as c_int, - Some(ffi::SQLITE_TRANSIENT())) + stmt, col, mem::transmute(self.as_ptr()), self.len() as c_int, ffi::SQLITE_TRANSIENT()) } }