diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2015-02-12 10:33:21 -0500 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2015-02-18 10:25:12 -0500 |
| commit | 801bc48939e6df1678ad2934ce35d981a068f253 (patch) | |
| tree | 00b84d20e0d80944c2c77bc0d8ba201f857a3143 /src/libcore/nonzero.rs | |
| parent | 8c841f2a310ccad73059ed9f74232f14e8f680bb (diff) | |
| download | rust-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.rs | 9 |
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 {} |
