X-Git-Url: https://git.chrismorgan.info/anymap/blobdiff_plain/7c9bd44916a760d84684e7afcadaa946b8db5bc5..326bc69fc2e67aac96246fc8b5307957c0a05e0a:/src/lib.rs diff --git a/src/lib.rs b/src/lib.rs index 043578f..3d47f0d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -13,7 +13,7 @@ use std::intrinsics::{forget, TypeId}; use std::collections::HashMap; use std::collections::hash_map; use std::hash::{Hash, Hasher, Writer}; -use std::mem::{transmute, transmute_copy}; +use std::mem::transmute; use std::raw::TraitObject; pub use Entry::{Vacant, Occupied}; @@ -54,11 +54,11 @@ trait UncheckedAnyRefExt<'a> { unsafe fn downcast_ref_unchecked(self) -> &'a T; } -impl<'a> UncheckedAnyRefExt<'a> for &'a (Any + 'a) { +impl<'a> UncheckedAnyRefExt<'a> for &'a Any { #[inline] unsafe fn downcast_ref_unchecked(self) -> &'a T { // Get the raw representation of the trait object - let to: TraitObject = transmute_copy(&self); + let to: TraitObject = transmute(self); // Extract the data pointer transmute(to.data) @@ -72,11 +72,11 @@ trait UncheckedAnyMutRefExt<'a> { unsafe fn downcast_mut_unchecked(self) -> &'a mut T; } -impl<'a> UncheckedAnyMutRefExt<'a> for &'a mut (Any + 'a) { +impl<'a> UncheckedAnyMutRefExt<'a> for &'a mut Any { #[inline] unsafe fn downcast_mut_unchecked(self) -> &'a mut T { // Get the raw representation of the trait object - let to: TraitObject = transmute_copy(&self); + let to: TraitObject = transmute(self); // Extract the data pointer transmute(to.data) @@ -209,12 +209,12 @@ impl AnyMap { } } -/// A view into a single occupied location in a HashMap +/// A view into a single occupied location in an AnyMap pub struct OccupiedEntry<'a, V: 'a> { entry: hash_map::OccupiedEntry<'a, TypeId, Box>, } -/// A view into a single empty location in a HashMap +/// A view into a single empty location in an AnyMap pub struct VacantEntry<'a, V: 'a> { entry: hash_map::VacantEntry<'a, TypeId, Box>, }