]> git.lizzy.rs Git - rust.git/commitdiff
Implement BorrowFrom<&'a T> for T (with mutable variants)
authorJonathan S <gereeter@gmail.com>
Thu, 20 Nov 2014 16:34:54 +0000 (10:34 -0600)
committerJonathan S <gereeter@gmail.com>
Thu, 20 Nov 2014 16:34:54 +0000 (10:34 -0600)
src/libcore/borrow.rs

index f0a14c02382ee9af3f18a347a638875b1d40f583..70b1bc162278674e486608cf13444855c4fb8644 100644 (file)
@@ -69,8 +69,16 @@ impl<Sized? T> BorrowFromMut<T> for T {
     fn borrow_from_mut(owned: &mut T) -> &mut T { owned }
 }
 
-impl BorrowFrom<&'static str> for str {
-    fn borrow_from<'a>(owned: &'a &'static str) -> &'a str { &**owned }
+impl<'a, Sized? T> BorrowFrom<&'a T> for T {
+    fn borrow_from<'b>(owned: &'b &'a T) -> &'b T { &**owned }
+}
+
+impl<'a, Sized? T> BorrowFrom<&'a mut T> for T {
+    fn borrow_from<'b>(owned: &'b &'a mut T) -> &'b T { &**owned }
+}
+
+impl<'a, Sized? T> BorrowFromMut<&'a mut T> for T {
+    fn borrow_from_mut<'b>(owned: &'b mut &'a mut T) -> &'b mut T { &mut **owned }
 }
 
 /// A generalization of Clone to borrowed data.