diff --git a/src/busy.rs b/src/busy.rs index 223df78..b87504a 100644 --- a/src/busy.rs +++ b/src/busy.rs @@ -60,7 +60,7 @@ impl Connection { let mut c = self.db.borrow_mut(); let r = match callback { Some(f) => unsafe { - ffi::sqlite3_busy_handler(c.db(), Some(busy_handler_callback), mem::transmute(f)) + ffi::sqlite3_busy_handler(c.db(), Some(busy_handler_callback), f as *mut c_void) }, None => unsafe { ffi::sqlite3_busy_handler(c.db(), None, ptr::null_mut()) }, }; diff --git a/src/collation.rs b/src/collation.rs index 25b8458..1168b75 100644 --- a/src/collation.rs +++ b/src/collation.rs @@ -132,7 +132,7 @@ impl InnerConnection { let r = unsafe { ffi::sqlite3_collation_needed( self.db(), - mem::transmute(x_coll_needed), + x_coll_needed as *mut c_void, Some(collation_needed_callback), ) }; diff --git a/src/trace.rs b/src/trace.rs index 39ef69f..76e0969 100644 --- a/src/trace.rs +++ b/src/trace.rs @@ -35,14 +35,11 @@ pub unsafe fn config_log(callback: Option) -> Result<()> { } let rc = match callback { - Some(f) => { - let p_arg: *mut c_void = mem::transmute(f); - ffi::sqlite3_config( - ffi::SQLITE_CONFIG_LOG, - log_callback as extern "C" fn(_, _, _), - p_arg, - ) - } + Some(f) => ffi::sqlite3_config( + ffi::SQLITE_CONFIG_LOG, + log_callback as extern "C" fn(_, _, _), + f as *mut c_void, + ), None => { let nullptr: *mut c_void = ptr::null_mut(); ffi::sqlite3_config(ffi::SQLITE_CONFIG_LOG, nullptr, nullptr) @@ -83,7 +80,7 @@ impl Connection { let c = self.db.borrow_mut(); match trace_fn { Some(f) => unsafe { - ffi::sqlite3_trace(c.db(), Some(trace_callback), mem::transmute(f)); + ffi::sqlite3_trace(c.db(), Some(trace_callback), f as *mut c_void); }, None => unsafe { ffi::sqlite3_trace(c.db(), None, ptr::null_mut()); @@ -117,7 +114,7 @@ impl Connection { let c = self.db.borrow_mut(); match profile_fn { Some(f) => unsafe { - ffi::sqlite3_profile(c.db(), Some(profile_callback), mem::transmute(f)) + ffi::sqlite3_profile(c.db(), Some(profile_callback), f as *mut c_void) }, None => unsafe { ffi::sqlite3_profile(c.db(), None, ptr::null_mut()) }, }; diff --git a/src/types/from_sql.rs b/src/types/from_sql.rs index 131a638..3fe74b4 100644 --- a/src/types/from_sql.rs +++ b/src/types/from_sql.rs @@ -143,10 +143,7 @@ impl FromSql for f64 { impl FromSql for bool { fn column_result(value: ValueRef<'_>) -> FromSqlResult { - i64::column_result(value).map(|i| match i { - 0 => false, - _ => true, - }) + i64::column_result(value).map(|i| !matches!(i, 0)) } }