From 3aa9addaa30d5811e911f76645ca86bc1166690d Mon Sep 17 00:00:00 2001 From: gwenn Date: Fri, 9 Dec 2022 20:16:38 +0100 Subject: [PATCH] [breaking change] Update edition from 2018 to 2021 And fix clippy warnings --- Cargo.toml | 2 +- src/blob/mod.rs | 1 - src/blob/pos_io.rs | 2 +- src/column.rs | 4 ++-- src/error.rs | 17 +++++------------ src/hooks.rs | 4 ++-- src/inner_connection.rs | 2 +- src/lib.rs | 31 ++++++++++++++----------------- src/pragma.rs | 7 +++---- src/statement.rs | 6 +++--- src/transaction.rs | 2 +- src/types/from_sql.rs | 5 ++--- src/types/mod.rs | 2 +- src/types/url.rs | 2 +- src/util/sqlite_string.rs | 1 - src/vtab/csvtab.rs | 23 +++++++---------------- src/vtab/vtablog.rs | 9 +++------ 17 files changed, 47 insertions(+), 73 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index e813e47..8f1a229 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ name = "rusqlite" # Note: Update version in README.md when you change this. version = "0.28.0" authors = ["The rusqlite developers"] -edition = "2018" +edition = "2021" description = "Ergonomic wrapper for SQLite" repository = "https://github.com/rusqlite/rusqlite" documentation = "http://docs.rs/rusqlite/" diff --git a/src/blob/mod.rs b/src/blob/mod.rs index 46e3ea8..c9e797b 100644 --- a/src/blob/mod.rs +++ b/src/blob/mod.rs @@ -274,7 +274,6 @@ impl Blob<'_> { #[inline] #[must_use] pub fn len(&self) -> usize { - use std::convert::TryInto; self.size().try_into().unwrap() } diff --git a/src/blob/pos_io.rs b/src/blob/pos_io.rs index 5d4a3c8..d970ab7 100644 --- a/src/blob/pos_io.rs +++ b/src/blob/pos_io.rs @@ -265,7 +265,7 @@ mod test { )); blob.raw_read_at_exact(&mut s2, 5).unwrap_err(); - let end_pos = blob.seek(std::io::SeekFrom::Current(0)).unwrap(); + let end_pos = blob.stream_position().unwrap(); assert_eq!(end_pos, 1); Ok(()) } diff --git a/src/column.rs b/src/column.rs index 4413a62..66d0e76 100644 --- a/src/column.rs +++ b/src/column.rs @@ -203,7 +203,7 @@ mod test { assert_eq!(ty, Type::Integer); } e => { - panic!("Unexpected error type: {:?}", e); + panic!("Unexpected error type: {e:?}"); } } match row.get::<_, String>("y").unwrap_err() { @@ -213,7 +213,7 @@ mod test { assert_eq!(ty, Type::Null); } e => { - panic!("Unexpected error type: {:?}", e); + panic!("Unexpected error type: {e:?}"); } } Ok(()) diff --git a/src/error.rs b/src/error.rs index 797a216..d9c181d 100644 --- a/src/error.rs +++ b/src/error.rs @@ -252,11 +252,7 @@ impl fmt::Display for Error { ), Error::FromSqlConversionFailure(i, ref t, ref err) => { if i != UNKNOWN_COLUMN { - write!( - f, - "Conversion error from type {} at index: {}, {}", - t, i, err - ) + write!(f, "Conversion error from type {t} at index: {i}, {err}") } else { err.fmt(f) } @@ -278,15 +274,12 @@ impl fmt::Display for Error { Error::QueryReturnedNoRows => write!(f, "Query returned no rows"), Error::InvalidColumnIndex(i) => write!(f, "Invalid column index: {i}"), Error::InvalidColumnName(ref name) => write!(f, "Invalid column name: {name}"), - Error::InvalidColumnType(i, ref name, ref t) => write!( - f, - "Invalid column type {} at index: {}, name: {}", - t, i, name - ), + Error::InvalidColumnType(i, ref name, ref t) => { + write!(f, "Invalid column type {t} at index: {i}, name: {name}") + } Error::InvalidParameterCount(i1, n1) => write!( f, - "Wrong number of parameters passed to query. Got {}, needed {}", - i1, n1 + "Wrong number of parameters passed to query. Got {i1}, needed {n1}" ), Error::StatementChangedRows(i) => write!(f, "Query changed {i} rows"), diff --git a/src/hooks.rs b/src/hooks.rs index 7a87bc3..a069686 100644 --- a/src/hooks.rs +++ b/src/hooks.rs @@ -656,7 +656,7 @@ unsafe fn free_boxed_hook(p: *mut c_void) { unsafe fn expect_utf8<'a>(p_str: *const c_char, description: &'static str) -> &'a str { expect_optional_utf8(p_str, description) - .unwrap_or_else(|| panic!("received empty {}", description)) + .unwrap_or_else(|| panic!("received empty {description}")) } unsafe fn expect_optional_utf8<'a>( @@ -667,7 +667,7 @@ unsafe fn expect_optional_utf8<'a>( return None; } std::str::from_utf8(std::ffi::CStr::from_ptr(p_str).to_bytes()) - .unwrap_or_else(|_| panic!("received non-utf8 string as {}", description)) + .unwrap_or_else(|_| panic!("received non-utf8 string as {description}")) .into() } diff --git a/src/inner_connection.rs b/src/inner_connection.rs index 92229ed..43e91e5 100644 --- a/src/inner_connection.rs +++ b/src/inner_connection.rs @@ -377,7 +377,7 @@ impl Drop for InnerConnection { if panicking() { eprintln!("Error while closing SQLite connection: {e:?}"); } else { - panic!("Error while closing SQLite connection: {:?}", e); + panic!("Error while closing SQLite connection: {e:?}"); } } } diff --git a/src/lib.rs b/src/lib.rs index 1a68958..7ac1745 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1291,9 +1291,7 @@ mod test { assert_eq!(ffi::SQLITE_CANTOPEN, e.extended_code); assert!( msg.contains(filename), - "error message '{}' does not contain '{}'", - msg, - filename + "error message '{msg}' does not contain '{filename}'" ); } else { panic!("SqliteFailure expected"); @@ -1421,8 +1419,7 @@ mod test { assert_eq!( err, Error::ExecuteReturnedResults, - "Unexpected error: {}", - err + "Unexpected error: {err}" ); } @@ -1438,7 +1435,7 @@ mod test { .unwrap_err(); match err { Error::MultipleStatement => (), - _ => panic!("Unexpected error: {}", err), + _ => panic!("Unexpected error: {err}"), } } @@ -1549,7 +1546,7 @@ mod test { let result: Result = db.one_column("SELECT x FROM foo WHERE x > 5"); match result.unwrap_err() { Error::QueryReturnedNoRows => (), - err => panic!("Unexpected error {}", err), + err => panic!("Unexpected error {err}"), } let bad_query_result = db.query_row("NOT A PROPER QUERY; test123", [], |_| Ok(())); @@ -1601,7 +1598,7 @@ mod test { // > MEMORY or OFF and can not be changed to a different value. An // > attempt to change the journal_mode of an in-memory database to // > any setting other than MEMORY or OFF is ignored. - assert!(mode == "memory" || mode == "off", "Got mode {:?}", mode); + assert!(mode == "memory" || mode == "off", "Got mode {mode:?}"); } Ok(()) @@ -1688,7 +1685,7 @@ mod test { assert_eq!(err.code, ErrorCode::ConstraintViolation); check_extended_code(err.extended_code); } - err => panic!("Unexpected error {}", err), + err => panic!("Unexpected error {err}"), } Ok(()) } @@ -1870,7 +1867,7 @@ mod test { match bad_type.unwrap_err() { Error::InvalidColumnType(..) => (), - err => panic!("Unexpected error {}", err), + err => panic!("Unexpected error {err}"), } let bad_idx: Result> = @@ -1878,7 +1875,7 @@ mod test { match bad_idx.unwrap_err() { Error::InvalidColumnIndex(_) => (), - err => panic!("Unexpected error {}", err), + err => panic!("Unexpected error {err}"), } Ok(()) } @@ -1923,7 +1920,7 @@ mod test { match bad_type.unwrap_err() { CustomError::Sqlite(Error::InvalidColumnType(..)) => (), - err => panic!("Unexpected error {}", err), + err => panic!("Unexpected error {err}"), } let bad_idx: CustomResult> = query @@ -1932,7 +1929,7 @@ mod test { match bad_idx.unwrap_err() { CustomError::Sqlite(Error::InvalidColumnIndex(_)) => (), - err => panic!("Unexpected error {}", err), + err => panic!("Unexpected error {err}"), } let non_sqlite_err: CustomResult> = query @@ -1941,7 +1938,7 @@ mod test { match non_sqlite_err.unwrap_err() { CustomError::SomeError => (), - err => panic!("Unexpected error {}", err), + err => panic!("Unexpected error {err}"), } Ok(()) } @@ -1978,7 +1975,7 @@ mod test { match bad_type.unwrap_err() { CustomError::Sqlite(Error::InvalidColumnType(..)) => (), - err => panic!("Unexpected error {}", err), + err => panic!("Unexpected error {err}"), } let bad_idx: CustomResult = @@ -1986,7 +1983,7 @@ mod test { match bad_idx.unwrap_err() { CustomError::Sqlite(Error::InvalidColumnIndex(_)) => (), - err => panic!("Unexpected error {}", err), + err => panic!("Unexpected error {err}"), } let non_sqlite_err: CustomResult = @@ -1994,7 +1991,7 @@ mod test { match non_sqlite_err.unwrap_err() { CustomError::SomeError => (), - err => panic!("Unexpected error {}", err), + err => panic!("Unexpected error {err}"), } Ok(()) } diff --git a/src/pragma.rs b/src/pragma.rs index 4864c9f..7748ad6 100644 --- a/src/pragma.rs +++ b/src/pragma.rs @@ -405,18 +405,17 @@ mod test { db.pragma_update_and_check(None, "journal_mode", "OFF", |row| row.get(0))?; assert!( journal_mode == "off" || journal_mode == "memory", - "mode: {:?}", - journal_mode, + "mode: {journal_mode:?}" ); // Sanity checks to ensure the move to a generic `ToSql` wasn't breaking let mode = db.pragma_update_and_check(None, "journal_mode", "OFF", |row| row.get::<_, String>(0))?; - assert!(mode == "off" || mode == "memory", "mode: {:?}", mode); + assert!(mode == "off" || mode == "memory", "mode: {mode:?}"); let param: &dyn crate::ToSql = &"OFF"; let mode = db.pragma_update_and_check(None, "journal_mode", param, |row| row.get::<_, String>(0))?; - assert!(mode == "off" || mode == "memory", "mode: {:?}", mode); + assert!(mode == "off" || mode == "memory", "mode: {mode:?}"); Ok(()) } diff --git a/src/statement.rs b/src/statement.rs index e3a90d4..18a2844 100644 --- a/src/statement.rs +++ b/src/statement.rs @@ -1272,12 +1272,12 @@ mod test { assert_eq!(stmt.insert([2i32])?, 2); match stmt.insert([1i32]).unwrap_err() { Error::StatementChangedRows(0) => (), - err => panic!("Unexpected error {}", err), + err => panic!("Unexpected error {err}"), } let mut multi = db.prepare("INSERT INTO foo (x) SELECT 3 UNION ALL SELECT 4")?; match multi.insert([]).unwrap_err() { Error::StatementChangedRows(2) => (), - err => panic!("Unexpected error {}", err), + err => panic!("Unexpected error {err}"), } Ok(()) } @@ -1532,7 +1532,7 @@ mod test { assert_eq!(error.code, ErrorCode::Unknown); assert_eq!(offset, 7); } - err => panic!("Unexpected error {}", err), + err => panic!("Unexpected error {err}"), } Ok(()) } diff --git a/src/transaction.rs b/src/transaction.rs index 5cf26a4..0539f90 100644 --- a/src/transaction.rs +++ b/src/transaction.rs @@ -563,7 +563,7 @@ mod test { assert_eq!(e.code, crate::ErrorCode::Unknown); assert!(m.contains("transaction")); } else { - panic!("Unexpected error type: {:?}", e); + panic!("Unexpected error type: {e:?}"); } } diff --git a/src/types/from_sql.rs b/src/types/from_sql.rs index 91eed09..b186a6b 100644 --- a/src/types/from_sql.rs +++ b/src/types/from_sql.rs @@ -59,8 +59,7 @@ impl fmt::Display for FromSqlError { } => { write!( f, - "Cannot read {} byte value out of {} byte blob", - expected_size, blob_size + "Cannot read {expected_size} byte value out of {blob_size} byte blob" ) } FromSqlError::Other(ref err) => err.fmt(f), @@ -248,7 +247,7 @@ mod test { .unwrap_err(); match err { Error::IntegralValueOutOfRange(_, value) => assert_eq!(*n, value), - _ => panic!("unexpected error: {}", err), + _ => panic!("unexpected error: {err}"), } } for n in in_range { diff --git a/src/types/mod.rs b/src/types/mod.rs index eece984..4fe93fc 100644 --- a/src/types/mod.rs +++ b/src/types/mod.rs @@ -352,7 +352,7 @@ mod test { assert_eq!(Value::Integer(1), row.get::<_, Value>(2)?); match row.get::<_, Value>(3)? { Value::Real(val) => assert!((1.5 - val).abs() < f64::EPSILON), - x => panic!("Invalid Value {:?}", x), + x => panic!("Invalid Value {x:?}"), } assert_eq!(Value::Null, row.get::<_, Value>(4)?); Ok(()) diff --git a/src/types/url.rs b/src/types/url.rs index 0ebb59b..e7fc203 100644 --- a/src/types/url.rs +++ b/src/types/url.rs @@ -74,7 +74,7 @@ mod test { ); } e => { - panic!("Expected conversion failure, got {}", e); + panic!("Expected conversion failure, got {e}"); } } Ok(()) diff --git a/src/util/sqlite_string.rs b/src/util/sqlite_string.rs index ae24c28..15d9823 100644 --- a/src/util/sqlite_string.rs +++ b/src/util/sqlite_string.rs @@ -100,7 +100,6 @@ impl SqliteMallocString { /// This means it's safe to use in extern "C" functions even outside of /// `catch_unwind`. pub(crate) fn from_str(s: &str) -> Self { - use std::convert::TryFrom; let s = if s.as_bytes().contains(&0) { std::borrow::Cow::Owned(make_nonnull(s)) } else { diff --git a/src/vtab/csvtab.rs b/src/vtab/csvtab.rs index 843363c..acf3cd8 100644 --- a/src/vtab/csvtab.rs +++ b/src/vtab/csvtab.rs @@ -113,10 +113,7 @@ unsafe impl<'vtab> VTab<'vtab> for CsvTab { match param { "filename" => { if !Path::new(value).exists() { - return Err(Error::ModuleError(format!( - "file '{}' does not exist", - value - ))); + return Err(Error::ModuleError(format!("file '{value}' does not exist"))); } vtab.filename = value.to_owned(); } @@ -137,8 +134,7 @@ unsafe impl<'vtab> VTab<'vtab> for CsvTab { n_col = Some(n); } else { return Err(Error::ModuleError(format!( - "unrecognized argument to 'columns': {}", - value + "unrecognized argument to 'columns': {value}" ))); } } @@ -147,8 +143,7 @@ unsafe impl<'vtab> VTab<'vtab> for CsvTab { vtab.has_headers = b; } else { return Err(Error::ModuleError(format!( - "unrecognized argument to 'header': {}", - value + "unrecognized argument to 'header': {value}" ))); } } @@ -157,8 +152,7 @@ unsafe impl<'vtab> VTab<'vtab> for CsvTab { vtab.delimiter = b; } else { return Err(Error::ModuleError(format!( - "unrecognized argument to 'delimiter': {}", - value + "unrecognized argument to 'delimiter': {value}" ))); } } @@ -171,15 +165,13 @@ unsafe impl<'vtab> VTab<'vtab> for CsvTab { } } else { return Err(Error::ModuleError(format!( - "unrecognized argument to 'quote': {}", - value + "unrecognized argument to 'quote': {value}" ))); } } _ => { return Err(Error::ModuleError(format!( - "unrecognized parameter '{}'", - param + "unrecognized parameter '{param}'" ))); } } @@ -326,8 +318,7 @@ unsafe impl VTabCursor for CsvTabCursor<'_> { fn column(&self, ctx: &mut Context, col: c_int) -> Result<()> { if col < 0 || col as usize >= self.cols.len() { return Err(Error::ModuleError(format!( - "column index out of bounds: {}", - col + "column index out of bounds: {col}" ))); } if self.cols.is_empty() { diff --git a/src/vtab/vtablog.rs b/src/vtab/vtablog.rs index 1b3e1b8..42cdc4d 100644 --- a/src/vtab/vtablog.rs +++ b/src/vtab/vtablog.rs @@ -56,8 +56,7 @@ impl VTabLog { "schema" => { if schema.is_some() { return Err(Error::ModuleError(format!( - "more than one '{}' parameter", - param + "more than one '{param}' parameter" ))); } schema = Some(value.to_owned()) @@ -65,8 +64,7 @@ impl VTabLog { "rows" => { if n_row.is_some() { return Err(Error::ModuleError(format!( - "more than one '{}' parameter", - param + "more than one '{param}' parameter" ))); } if let Ok(n) = i64::from_str(value) { @@ -75,8 +73,7 @@ impl VTabLog { } _ => { return Err(Error::ModuleError(format!( - "unrecognized parameter '{}'", - param + "unrecognized parameter '{param}'" ))); } }