diff --git a/src/types/to_sql.rs b/src/types/to_sql.rs index ba8f5da..0d81d6d 100644 --- a/src/types/to_sql.rs +++ b/src/types/to_sql.rs @@ -1,3 +1,4 @@ +use std::borrow::Cow; use super::{Null, Value, ValueRef}; use Result; @@ -149,6 +150,12 @@ impl ToSql for Option { } } +impl<'a> ToSql for Cow<'a, str> { + fn to_sql(&self) -> Result { + Ok(ToSqlOutput::from(self.as_ref())) + } +} + #[cfg(test)] mod test { use super::ToSql; @@ -165,4 +172,16 @@ mod test { is_to_sql::(); is_to_sql::(); } + + #[test] + fn test_cow_str() { + use std::borrow::Cow; + let s = "str"; + let cow = Cow::Borrowed(s); + let r = cow.to_sql(); + assert!(r.is_ok()); + let cow = Cow::Owned::(String::from(s)); + let r = cow.to_sql(); + assert!(r.is_ok()); + } }