Replace Cargo features with arcane DST magicks.
[anymap] / src / unchecked_any.rs
diff --git a/src/unchecked_any.rs b/src/unchecked_any.rs
deleted file mode 100644 (file)
index 52dee67..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-use raw::Any;
-use std::mem;
-#[cfg(feature = "nightly")]
-use std::raw::TraitObject;
-
-#[cfg(not(feature = "nightly"))]
-#[repr(C)]
-#[allow(raw_pointer_derive)]
-#[derive(Copy, Clone)]
-struct TraitObject {
-    pub data: *mut (),
-    pub vtable: *mut (),
-}
-
-#[allow(missing_docs)]  // Bogus warning (it’s not public outside the crate), ☹
-pub trait UncheckedAnyExt {
-    unsafe fn downcast_ref_unchecked<T: 'static>(&self) -> &T;
-    unsafe fn downcast_mut_unchecked<T: 'static>(&mut self) -> &mut T;
-    unsafe fn downcast_unchecked<T: 'static>(self: Box<Self>) -> Box<T>;
-}
-
-impl UncheckedAnyExt for Any {
-    unsafe fn downcast_ref_unchecked<T: 'static>(&self) -> &T {
-        mem::transmute(mem::transmute::<_, TraitObject>(self).data)
-    }
-
-    unsafe fn downcast_mut_unchecked<T: 'static>(&mut self) -> &mut T {
-        mem::transmute(mem::transmute::<_, TraitObject>(self).data)
-    }
-
-    unsafe fn downcast_unchecked<T: 'static>(self: Box<Any>) -> Box<T> {
-        mem::transmute(mem::transmute::<_, TraitObject>(self).data)
-    }
-}