From b3d949b3bb715a3308dfc87a9afcb3dce7793886 Mon Sep 17 00:00:00 2001 From: John Gallagher Date: Tue, 17 Mar 2015 00:44:37 -0400 Subject: [PATCH 1/5] Remove unneeded #[feature]s --- src/lib.rs | 2 +- src/types.rs | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 7f42249..fb2e7bb 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -48,7 +48,7 @@ //! } //! } //! ``` -#![feature(unsafe_destructor, core, path, libc, rustc_private, collections)] +#![feature(unsafe_destructor, core, libc, rustc_private)] #![cfg_attr(test, feature(test))] extern crate libc; diff --git a/src/types.rs b/src/types.rs index ecd619a..105ac1a 100644 --- a/src/types.rs +++ b/src/types.rs @@ -192,12 +192,13 @@ impl FromSql for String { impl FromSql for Vec { unsafe fn column_result(stmt: *mut sqlite3_stmt, col: c_int) -> SqliteResult> { + use std::slice::from_raw_parts; let c_blob = ffi::sqlite3_column_blob(stmt, col); let len = ffi::sqlite3_column_bytes(stmt, col); assert!(len >= 0); let len = len as usize; - Ok(Vec::from_raw_buf(mem::transmute(c_blob), len)) + Ok(from_raw_parts(mem::transmute(c_blob), len).to_vec()) } } From 632d87de2f3aa9eaa71120f5324cf0625d921f53 Mon Sep 17 00:00:00 2001 From: John Gallagher Date: Tue, 17 Mar 2015 00:55:28 -0400 Subject: [PATCH 2/5] Remove most uses of #[feature(core)] --- src/lib.rs | 14 +++++++------- src/transaction.rs | 4 ++-- src/types.rs | 10 +++++----- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index fb2e7bb..f27cd51 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -109,7 +109,7 @@ impl fmt::Display for SqliteError { impl error::Error for SqliteError { fn description(&self) -> &str { - self.message.as_slice() + &self.message } } @@ -900,13 +900,13 @@ mod test { let rows = query.query(&[&4i32]).unwrap(); let v: Vec = rows.map(|r| r.unwrap().get(0)).collect(); - assert_eq!(v.as_slice(), [3i32, 2, 1].as_slice()); + assert_eq!(v, [3i32, 2, 1]); } { let rows = query.query(&[&3i32]).unwrap(); let v: Vec = rows.map(|r| r.unwrap().get(0)).collect(); - assert_eq!(v.as_slice(), [2i32, 1].as_slice()); + assert_eq!(v, [2i32, 1]); } } @@ -930,7 +930,7 @@ mod test { let error = result.unwrap_err(); assert!(error.code == ffi::SQLITE_NOTICE); - assert!(error.message.as_slice() == "Query did not return a row"); + assert!(error.message == "Query did not return a row"); let bad_query_result = db.query_row_safe("NOT A PROPER QUERY; test123", &[], |_| ()); @@ -943,7 +943,7 @@ mod test { db.execute_batch("CREATE TABLE foo(x INTEGER);").unwrap(); let err = db.prepare("SELECT * FROM does_not_exist").unwrap_err(); - assert!(err.message.as_slice().contains("does_not_exist")); + assert!(err.message.contains("does_not_exist")); } #[test] @@ -961,7 +961,7 @@ mod test { assert_eq!(2i32, second.get(0)); let result = first.get_opt::(0); - assert!(result.unwrap_err().message.as_slice().contains("advancing to next row")); + assert!(result.unwrap_err().message.contains("advancing to next row")); } #[test] @@ -973,7 +973,7 @@ mod test { assert_eq!(db.last_insert_rowid(), 1); let mut stmt = db.prepare("INSERT INTO foo DEFAULT VALUES").unwrap(); - for _ in range(0i32, 9) { + for _ in 0i32 .. 9 { stmt.execute(&[]).unwrap(); } assert_eq!(db.last_insert_rowid(), 10); diff --git a/src/transaction.rs b/src/transaction.rs index 9e151b3..e74ffc3 100644 --- a/src/transaction.rs +++ b/src/transaction.rs @@ -240,7 +240,7 @@ mod test { let mut stmt = db.prepare("INSERT INTO foo VALUES(1)").unwrap(); bencher.iter(|| { - for _ in range(0i32, 1000) { + for _ in 0i32 .. 1000 { stmt.execute(&[]).unwrap(); } }) @@ -255,7 +255,7 @@ mod test { bencher.iter(|| { let mut tx = db.transaction().unwrap(); tx.set_commit(); - for _ in range(0i32, 1000) { + for _ in 0i32 .. 1000 { stmt.execute(&[]).unwrap(); } }) diff --git a/src/types.rs b/src/types.rs index 105ac1a..490f3af 100644 --- a/src/types.rs +++ b/src/types.rs @@ -101,7 +101,7 @@ impl<'a> ToSql for &'a str { impl ToSql for String { unsafe fn bind_parameter(&self, stmt: *mut sqlite3_stmt, col: c_int) -> c_int { - self.as_slice().bind_parameter(stmt, col) + (&self[..]).bind_parameter(stmt, col) } } @@ -115,7 +115,7 @@ impl<'a> ToSql for &'a [u8] { impl ToSql for Vec { unsafe fn bind_parameter(&self, stmt: *mut sqlite3_stmt, col: c_int) -> c_int { - self.as_slice().bind_parameter(stmt, col) + (&self[..]).bind_parameter(stmt, col) } } @@ -207,7 +207,7 @@ impl FromSql for time::Timespec { col: c_int) -> SqliteResult { let col_str = FromSql::column_result(stmt, col); col_str.and_then(|txt: String| { - time::strptime(txt.as_slice(), SQLITE_DATETIME_FMT).map(|tm| { + time::strptime(&txt, SQLITE_DATETIME_FMT).map(|tm| { tm.to_timespec() }).map_err(|parse_error| { SqliteError{ code: ffi::SQLITE_MISMATCH, message: format!("{}", parse_error) } @@ -256,7 +256,7 @@ mod test { db.execute("INSERT INTO foo(t) VALUES (?)", &[&s.to_string()]).unwrap(); let from: String = db.query_row("SELECT t FROM foo", &[], |r| r.get(0)); - assert_eq!(from.as_slice(), s); + assert_eq!(from, s); } #[test] @@ -286,7 +286,7 @@ mod test { let row1 = rows.next().unwrap().unwrap(); let s1: Option = row1.get(0); let b1: Option> = row1.get(1); - assert_eq!(s.unwrap(), s1.unwrap().as_slice()); + assert_eq!(s.unwrap(), s1.unwrap()); assert!(b1.is_none()); let row2 = rows.next().unwrap().unwrap(); From 89e20146e32d9d2aad75419f80350f8542aeba9b Mon Sep 17 00:00:00 2001 From: John Gallagher Date: Tue, 17 Mar 2015 00:56:55 -0400 Subject: [PATCH 3/5] Use bitflags crate instead of rustc_bitflags --- src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index f27cd51..cf2234d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -48,12 +48,12 @@ //! } //! } //! ``` -#![feature(unsafe_destructor, core, libc, rustc_private)] +#![feature(unsafe_destructor, core, libc)] #![cfg_attr(test, feature(test))] extern crate libc; extern crate "libsqlite3-sys" as ffi; -#[macro_use] extern crate rustc_bitflags; +#[macro_use] extern crate bitflags; use std::mem; use std::ptr; From ff5a6b30f569fd5ad2844d01557277c5b19b325e Mon Sep 17 00:00:00 2001 From: John Gallagher Date: Tue, 24 Mar 2015 12:13:19 -0400 Subject: [PATCH 4/5] Update Changelog --- Changelog.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Changelog.md b/Changelog.md index c50f4cb..c4dcdc4 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,3 +1,7 @@ +# Version 0.0.12 (2015-03-24) + +* Updates to track rustc stabilization. + # Version 0.0.11 (2015-03-12) * Reexport `sqlite3_stmt` from `libsqlite3-sys` for easier `impl`-ing of `ToSql` and `FromSql`. From 08dd0b6c97a638891f31baf114768a4e4fb33a23 Mon Sep 17 00:00:00 2001 From: John Gallagher Date: Tue, 24 Mar 2015 12:14:03 -0400 Subject: [PATCH 5/5] Bump cargo version --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 94c739a..349e5d0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rusqlite" -version = "0.0.11" +version = "0.0.12" authors = ["John Gallagher "] description = "Ergonomic wrapper for SQLite" repository = "https://github.com/jgallagher/rusqlite"