From cdce75328ecff0618137925cd503c88eae996a99 Mon Sep 17 00:00:00 2001 From: Thom Chiovoloni Date: Wed, 5 May 2021 09:29:16 -0700 Subject: [PATCH] Fix build on some older versions of Rust --- libsqlite3-sys/build.rs | 5 ++++- src/inner_connection.rs | 2 +- src/types/from_sql.rs | 2 +- src/vtab/series.rs | 2 +- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/libsqlite3-sys/build.rs b/libsqlite3-sys/build.rs index ffdcf84..103b142 100644 --- a/libsqlite3-sys/build.rs +++ b/libsqlite3-sys/build.rs @@ -377,7 +377,10 @@ mod bindings { fn generating_bundled_bindings() -> bool { // Hacky way to know if we're generating the bundled bindings println!("cargo:rerun-if-env-changed=LIBSQLITE3_SYS_BUNDLING"); - matches!(std::env::var("LIBSQLITE3_SYS_BUNDLING"), Ok(v) if v != "0") + match std::env::var("LIBSQLITE3_SYS_BUNDLING") { + Ok(v) => v != "0", + Err(_) => false, + } } pub fn write_to_out_dir(header: HeaderLocation, out_path: &Path) { diff --git a/src/inner_connection.rs b/src/inner_connection.rs index 60c6a97..0fbf5c1 100644 --- a/src/inner_connection.rs +++ b/src/inner_connection.rs @@ -261,7 +261,7 @@ impl InnerConnection { let tail = if c_tail.is_null() { 0 } else { - let n = unsafe { c_tail.offset_from(c_sql) }; + let n = (c_tail as isize) - (c_sql as isize); if n <= 0 || n >= len as isize { 0 } else { diff --git a/src/types/from_sql.rs b/src/types/from_sql.rs index 7bb137e..7381fdf 100644 --- a/src/types/from_sql.rs +++ b/src/types/from_sql.rs @@ -136,7 +136,7 @@ impl FromSql for f64 { impl FromSql for bool { #[inline] fn column_result(value: ValueRef<'_>) -> FromSqlResult { - i64::column_result(value).map(|i| !matches!(i, 0)) + i64::column_result(value).map(|i| i != 0) } } diff --git a/src/vtab/series.rs b/src/vtab/series.rs index ea284a9..31ef86f 100644 --- a/src/vtab/series.rs +++ b/src/vtab/series.rs @@ -185,6 +185,7 @@ impl SeriesTabCursor<'_> { } } } +#[allow(clippy::comparison_chain)] unsafe impl VTabCursor for SeriesTabCursor<'_> { fn filter(&mut self, idx_num: c_int, _idx_str: Option<&str>, args: &Values<'_>) -> Result<()> { let mut idx_num = QueryPlanFlags::from_bits_truncate(idx_num); @@ -203,7 +204,6 @@ unsafe impl VTabCursor for SeriesTabCursor<'_> { } if idx_num.contains(QueryPlanFlags::STEP) { self.step = args.get(i)?; - #[allow(clippy::comparison_chain)] if self.step == 0 { self.step = 1; } else if self.step < 0 {