diff options
Diffstat (limited to 'src/types/url.rs')
-rw-r--r-- | src/types/url.rs | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/src/types/url.rs b/src/types/url.rs index 1c9c63a..fea8500 100644 --- a/src/types/url.rs +++ b/src/types/url.rs @@ -1,10 +1,11 @@ -//! `ToSql` and `FromSql` implementation for [`url::Url`]. +//! [`ToSql`] and [`FromSql`] implementation for [`url::Url`]. use crate::types::{FromSql, FromSqlError, FromSqlResult, ToSql, ToSqlOutput, ValueRef}; use crate::Result; use url::Url; /// Serialize `Url` to text. impl ToSql for Url { + #[inline] fn to_sql(&self) -> Result<ToSqlOutput<'_>> { Ok(ToSqlOutput::from(self.as_str())) } @@ -12,6 +13,7 @@ impl ToSql for Url { /// Deserialize text to `Url`. impl FromSql for Url { + #[inline] fn column_result(value: ValueRef<'_>) -> FromSqlResult<Self> { match value { ValueRef::Text(s) => { @@ -28,20 +30,19 @@ mod test { use crate::{params, Connection, Error, Result}; use url::{ParseError, Url}; - fn checked_memory_handle() -> Connection { - let db = Connection::open_in_memory().unwrap(); - db.execute_batch("CREATE TABLE urls (i INTEGER, v TEXT)") - .unwrap(); - db + fn checked_memory_handle() -> Result<Connection> { + let db = Connection::open_in_memory()?; + db.execute_batch("CREATE TABLE urls (i INTEGER, v TEXT)")?; + Ok(db) } fn get_url(db: &Connection, id: i64) -> Result<Url> { - db.query_row("SELECT v FROM urls WHERE i = ?", params![id], |r| r.get(0)) + db.query_row("SELECT v FROM urls WHERE i = ?", [id], |r| r.get(0)) } #[test] - fn test_sql_url() { - let db = &checked_memory_handle(); + fn test_sql_url() -> Result<()> { + let db = &checked_memory_handle()?; let url0 = Url::parse("http://www.example1.com").unwrap(); let url1 = Url::parse("http://www.example1.com/👌").unwrap(); @@ -52,16 +53,15 @@ mod test { // also insert a non-hex encoded url (which might be present if it was // inserted separately) params![url0, url1, url2, "illegal"], - ) - .unwrap(); + )?; - assert_eq!(get_url(db, 0).unwrap(), url0); + assert_eq!(get_url(db, 0)?, url0); - assert_eq!(get_url(db, 1).unwrap(), url1); + assert_eq!(get_url(db, 1)?, url1); // Should successfully read it, even though it wasn't inserted as an // escaped url. - let out_url2: Url = get_url(db, 2).unwrap(); + let out_url2: Url = get_url(db, 2)?; assert_eq!(out_url2, Url::parse(url2).unwrap()); // Make sure the conversion error comes through correctly. @@ -77,5 +77,6 @@ mod test { panic!("Expected conversion failure, got {}", e); } } + Ok(()) } } |