about summary refs log tree commit diff
path: root/src/libcore/nonzero.rs
diff options
context:
space:
mode:
authorNiko Matsakis <niko@alum.mit.edu>2015-02-12 10:33:21 -0500
committerNiko Matsakis <niko@alum.mit.edu>2015-02-18 10:25:12 -0500
commit801bc48939e6df1678ad2934ce35d981a068f253 (patch)
tree00b84d20e0d80944c2c77bc0d8ba201f857a3143 /src/libcore/nonzero.rs
parent8c841f2a310ccad73059ed9f74232f14e8f680bb (diff)
downloadrust-801bc48939e6df1678ad2934ce35d981a068f253.tar.gz
rust-801bc48939e6df1678ad2934ce35d981a068f253.zip
Rewrite `Unique<T>` so that it is covariant in T, implies `NonZero` and ownership,
and also follows the API of `NonZero` a bit more closely. More to do
here I think (including perhaps a new name).
Diffstat (limited to 'src/libcore/nonzero.rs')
-rw-r--r--src/libcore/nonzero.rs9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/libcore/nonzero.rs b/src/libcore/nonzero.rs
index 5644f763069..230587b726f 100644
--- a/src/libcore/nonzero.rs
+++ b/src/libcore/nonzero.rs
@@ -10,15 +10,14 @@
 
 //! Exposes the NonZero lang item which provides optimization hints.
 
+use marker::{Sized, MarkerTrait};
 use ops::Deref;
-use ptr::Unique;
 
 /// Unsafe trait to indicate what types are usable with the NonZero struct
-pub unsafe trait Zeroable {}
+pub unsafe trait Zeroable : MarkerTrait {}
 
-unsafe impl<T> Zeroable for *const T {}
-unsafe impl<T> Zeroable for *mut T {}
-unsafe impl<T> Zeroable for Unique<T> { }
+unsafe impl<T:?Sized> Zeroable for *const T {}
+unsafe impl<T:?Sized> Zeroable for *mut T {}
 unsafe impl Zeroable for isize {}
 unsafe impl Zeroable for usize {}
 unsafe impl Zeroable for i8 {}