diff --git a/src/any.rs b/src/any.rs index 87028fb..16955ad 100644 --- a/src/any.rs +++ b/src/any.rs @@ -122,10 +122,12 @@ macro_rules! implement { } impl UncheckedAnyExt for $base $(+ $bounds)* { + #[allow(transmute_ptr_to_ref)] unsafe fn downcast_ref_unchecked(&self) -> &T { mem::transmute(mem::transmute::<_, TraitObject>(self).data) } + #[allow(transmute_ptr_to_ref)] unsafe fn downcast_mut_unchecked(&mut self) -> &mut T { mem::transmute(mem::transmute::<_, TraitObject>(self).data) } diff --git a/src/raw.rs b/src/raw.rs index b103bd7..3645429 100644 --- a/src/raw.rs +++ b/src/raw.rs @@ -80,7 +80,7 @@ impl_common_methods! { with_capacity(capacity) => HashMap::with_capacity_and_hasher(capacity, Default::default()); } -/// RawMap iterator. +/// `RawMap` iterator. #[derive(Clone)] pub struct Iter<'a, A: ?Sized + UncheckedAnyExt> { inner: hash_map::Iter<'a, TypeId, Box>, @@ -94,7 +94,7 @@ impl<'a, A: ?Sized + UncheckedAnyExt> ExactSizeIterator for Iter<'a, A> { #[inline] fn len(&self) -> usize { self.inner.len() } } -/// RawMap mutable iterator. +/// `RawMap` mutable iterator. pub struct IterMut<'a, A: ?Sized + UncheckedAnyExt> { inner: hash_map::IterMut<'a, TypeId, Box>, } @@ -107,7 +107,7 @@ impl<'a, A: ?Sized + UncheckedAnyExt> ExactSizeIterator for IterMut<'a, A> { #[inline] fn len(&self) -> usize { self.inner.len() } } -/// RawMap move iterator. +/// `RawMap` move iterator. pub struct IntoIter { inner: hash_map::IntoIter>, } @@ -120,7 +120,7 @@ impl ExactSizeIterator for IntoIter { #[inline] fn len(&self) -> usize { self.inner.len() } } -/// RawMap drain iterator. +/// `RawMap` drain iterator. pub struct Drain<'a, A: ?Sized + UncheckedAnyExt> { inner: hash_map::Drain<'a, TypeId, Box>, }