about summary refs log tree commit diff
path: root/src/libcore
diff options
context:
space:
mode:
authorSimon Sapin <simon.sapin@exyr.org>2017-07-14 12:37:57 +0200
committerSimon Sapin <simon.sapin@exyr.org>2017-07-22 20:38:40 +0200
commit1ef24bb3e23975b8183a04b0691ee0ecb878c17e (patch)
tree221ec21e8d5cbaddaf3e04d2c963d3287652df3a /src/libcore
parentddaf9b24f035f11a5ce53b39352d3e76093b766e (diff)
downloadrust-1ef24bb3e23975b8183a04b0691ee0ecb878c17e.tar.gz
rust-1ef24bb3e23975b8183a04b0691ee0ecb878c17e.zip
Implement From<Unique<T>> for Shared<T>
Diffstat (limited to 'src/libcore')
-rw-r--r--src/libcore/ptr.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/libcore/ptr.rs b/src/libcore/ptr.rs
index 633cd20bbf2..29e2114f38a 100644
--- a/src/libcore/ptr.rs
+++ b/src/libcore/ptr.rs
@@ -16,6 +16,7 @@
 
 #![stable(feature = "rust1", since = "1.0.0")]
 
+use convert::From;
 use intrinsics;
 use ops::CoerceUnsized;
 use fmt;
@@ -1288,3 +1289,10 @@ impl<T: ?Sized> fmt::Pointer for Shared<T> {
         fmt::Pointer::fmt(&self.as_ptr(), f)
     }
 }
+
+#[unstable(feature = "shared", issue = "27730")]
+impl<T: ?Sized> From<Unique<T>> for Shared<T> {
+    fn from(unique: Unique<T>) -> Self {
+        Shared { pointer: unique.pointer, _marker: PhantomData }
+    }
+}