From eb7fbc57d0acb52cf60bd86f01b76d849cd0d23a Mon Sep 17 00:00:00 2001 From: gwenn Date: Sat, 25 Mar 2023 10:19:56 +0100 Subject: [PATCH 1/2] Use ParseCallbacks::item_name to fix sqlite3_index_info_* types --- libsqlite3-sys/bindgen-bindings/bindgen_3.14.0.rs | 12 ++++++------ libsqlite3-sys/build.rs | 7 +++++++ libsqlite3-sys/sqlcipher/bindgen_bundled_version.rs | 12 ++++++------ libsqlite3-sys/sqlite3/bindgen_bundled_version.rs | 12 ++++++------ libsqlite3-sys/src/lib.rs | 3 --- src/vtab/mod.rs | 4 ++-- 6 files changed, 27 insertions(+), 23 deletions(-) diff --git a/libsqlite3-sys/bindgen-bindings/bindgen_3.14.0.rs b/libsqlite3-sys/bindgen-bindings/bindgen_3.14.0.rs index 9c9db0c..8dc08a1 100644 --- a/libsqlite3-sys/bindgen-bindings/bindgen_3.14.0.rs +++ b/libsqlite3-sys/bindgen-bindings/bindgen_3.14.0.rs @@ -1879,10 +1879,10 @@ pub struct sqlite3_module { #[derive(Debug, Copy, Clone)] pub struct sqlite3_index_info { pub nConstraint: ::std::os::raw::c_int, - pub aConstraint: *mut sqlite3_index_info_sqlite3_index_constraint, + pub aConstraint: *mut sqlite3_index_constraint, pub nOrderBy: ::std::os::raw::c_int, - pub aOrderBy: *mut sqlite3_index_info_sqlite3_index_orderby, - pub aConstraintUsage: *mut sqlite3_index_info_sqlite3_index_constraint_usage, + pub aOrderBy: *mut sqlite3_index_orderby, + pub aConstraintUsage: *mut sqlite3_index_constraint_usage, pub idxNum: ::std::os::raw::c_int, pub idxStr: *mut ::std::os::raw::c_char, pub needToFreeIdxStr: ::std::os::raw::c_int, @@ -1894,7 +1894,7 @@ pub struct sqlite3_index_info { } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct sqlite3_index_info_sqlite3_index_constraint { +pub struct sqlite3_index_constraint { pub iColumn: ::std::os::raw::c_int, pub op: ::std::os::raw::c_uchar, pub usable: ::std::os::raw::c_uchar, @@ -1902,13 +1902,13 @@ pub struct sqlite3_index_info_sqlite3_index_constraint { } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct sqlite3_index_info_sqlite3_index_orderby { +pub struct sqlite3_index_orderby { pub iColumn: ::std::os::raw::c_int, pub desc: ::std::os::raw::c_uchar, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct sqlite3_index_info_sqlite3_index_constraint_usage { +pub struct sqlite3_index_constraint_usage { pub argvIndex: ::std::os::raw::c_int, pub omit: ::std::os::raw::c_uchar, } diff --git a/libsqlite3-sys/build.rs b/libsqlite3-sys/build.rs index 6c8157c..51852a3 100644 --- a/libsqlite3-sys/build.rs +++ b/libsqlite3-sys/build.rs @@ -497,6 +497,13 @@ mod bindings { None } } + fn item_name(&self, original_item_name: &str) -> Option { + if let Some(s) = original_item_name.strip_prefix("sqlite3_index_info_") { + Some(s.to_owned()) + } else { + None + } + } } // Are we generating the bundled bindings? Used to avoid emitting things diff --git a/libsqlite3-sys/sqlcipher/bindgen_bundled_version.rs b/libsqlite3-sys/sqlcipher/bindgen_bundled_version.rs index ec15bfe..b731864 100644 --- a/libsqlite3-sys/sqlcipher/bindgen_bundled_version.rs +++ b/libsqlite3-sys/sqlcipher/bindgen_bundled_version.rs @@ -2189,10 +2189,10 @@ pub struct sqlite3_module { #[derive(Debug, Copy, Clone)] pub struct sqlite3_index_info { pub nConstraint: ::std::os::raw::c_int, - pub aConstraint: *mut sqlite3_index_info_sqlite3_index_constraint, + pub aConstraint: *mut sqlite3_index_constraint, pub nOrderBy: ::std::os::raw::c_int, - pub aOrderBy: *mut sqlite3_index_info_sqlite3_index_orderby, - pub aConstraintUsage: *mut sqlite3_index_info_sqlite3_index_constraint_usage, + pub aOrderBy: *mut sqlite3_index_orderby, + pub aConstraintUsage: *mut sqlite3_index_constraint_usage, pub idxNum: ::std::os::raw::c_int, pub idxStr: *mut ::std::os::raw::c_char, pub needToFreeIdxStr: ::std::os::raw::c_int, @@ -2204,7 +2204,7 @@ pub struct sqlite3_index_info { } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct sqlite3_index_info_sqlite3_index_constraint { +pub struct sqlite3_index_constraint { pub iColumn: ::std::os::raw::c_int, pub op: ::std::os::raw::c_uchar, pub usable: ::std::os::raw::c_uchar, @@ -2212,13 +2212,13 @@ pub struct sqlite3_index_info_sqlite3_index_constraint { } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct sqlite3_index_info_sqlite3_index_orderby { +pub struct sqlite3_index_orderby { pub iColumn: ::std::os::raw::c_int, pub desc: ::std::os::raw::c_uchar, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct sqlite3_index_info_sqlite3_index_constraint_usage { +pub struct sqlite3_index_constraint_usage { pub argvIndex: ::std::os::raw::c_int, pub omit: ::std::os::raw::c_uchar, } diff --git a/libsqlite3-sys/sqlite3/bindgen_bundled_version.rs b/libsqlite3-sys/sqlite3/bindgen_bundled_version.rs index d7fe0b5..fbe2d39 100644 --- a/libsqlite3-sys/sqlite3/bindgen_bundled_version.rs +++ b/libsqlite3-sys/sqlite3/bindgen_bundled_version.rs @@ -2162,10 +2162,10 @@ pub struct sqlite3_module { #[derive(Debug, Copy, Clone)] pub struct sqlite3_index_info { pub nConstraint: ::std::os::raw::c_int, - pub aConstraint: *mut sqlite3_index_info_sqlite3_index_constraint, + pub aConstraint: *mut sqlite3_index_constraint, pub nOrderBy: ::std::os::raw::c_int, - pub aOrderBy: *mut sqlite3_index_info_sqlite3_index_orderby, - pub aConstraintUsage: *mut sqlite3_index_info_sqlite3_index_constraint_usage, + pub aOrderBy: *mut sqlite3_index_orderby, + pub aConstraintUsage: *mut sqlite3_index_constraint_usage, pub idxNum: ::std::os::raw::c_int, pub idxStr: *mut ::std::os::raw::c_char, pub needToFreeIdxStr: ::std::os::raw::c_int, @@ -2177,7 +2177,7 @@ pub struct sqlite3_index_info { } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct sqlite3_index_info_sqlite3_index_constraint { +pub struct sqlite3_index_constraint { pub iColumn: ::std::os::raw::c_int, pub op: ::std::os::raw::c_uchar, pub usable: ::std::os::raw::c_uchar, @@ -2185,13 +2185,13 @@ pub struct sqlite3_index_info_sqlite3_index_constraint { } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct sqlite3_index_info_sqlite3_index_orderby { +pub struct sqlite3_index_orderby { pub iColumn: ::std::os::raw::c_int, pub desc: ::std::os::raw::c_uchar, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct sqlite3_index_info_sqlite3_index_constraint_usage { +pub struct sqlite3_index_constraint_usage { pub argvIndex: ::std::os::raw::c_int, pub omit: ::std::os::raw::c_uchar, } diff --git a/libsqlite3-sys/src/lib.rs b/libsqlite3-sys/src/lib.rs index 5141df3..49ec1d5 100644 --- a/libsqlite3-sys/src/lib.rs +++ b/libsqlite3-sys/src/lib.rs @@ -31,9 +31,6 @@ mod bindings { } pub use bindings::*; -pub type sqlite3_index_constraint = sqlite3_index_info_sqlite3_index_constraint; -pub type sqlite3_index_constraint_usage = sqlite3_index_info_sqlite3_index_constraint_usage; - impl Default for sqlite3_vtab { fn default() -> Self { unsafe { mem::zeroed() } diff --git a/src/vtab/mod.rs b/src/vtab/mod.rs index 2ef59ef..f070e3a 100644 --- a/src/vtab/mod.rs +++ b/src/vtab/mod.rs @@ -619,7 +619,7 @@ impl IndexConstraintUsage<'_> { /// `feature = "vtab"` pub struct OrderByIter<'a> { - iter: slice::Iter<'a, ffi::sqlite3_index_info_sqlite3_index_orderby>, + iter: slice::Iter<'a, ffi::sqlite3_index_orderby>, } impl<'a> Iterator for OrderByIter<'a> { @@ -637,7 +637,7 @@ impl<'a> Iterator for OrderByIter<'a> { } /// A column of the ORDER BY clause. -pub struct OrderBy<'a>(&'a ffi::sqlite3_index_info_sqlite3_index_orderby); +pub struct OrderBy<'a>(&'a ffi::sqlite3_index_orderby); impl OrderBy<'_> { /// Column number From 420bf084895f7d571fa6124ed8b24cf12264c99d Mon Sep 17 00:00:00 2001 From: gwenn Date: Sat, 25 Mar 2023 10:34:47 +0100 Subject: [PATCH 2/2] Fix clippy warnings --- libsqlite3-sys/build.rs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/libsqlite3-sys/build.rs b/libsqlite3-sys/build.rs index 51852a3..ae94935 100644 --- a/libsqlite3-sys/build.rs +++ b/libsqlite3-sys/build.rs @@ -498,11 +498,9 @@ mod bindings { } } fn item_name(&self, original_item_name: &str) -> Option { - if let Some(s) = original_item_name.strip_prefix("sqlite3_index_info_") { - Some(s.to_owned()) - } else { - None - } + original_item_name + .strip_prefix("sqlite3_index_info_") + .map(|s| s.to_owned()) } }