use std::collections::hash_map::{self, HashMap};
use std::hash::Hash;
use std::hash::{Hasher, BuildHasherDefault};
+#[cfg(test)]
use std::mem;
use std::ops::{Index, IndexMut};
use std::ptr;
// This expects to receive one and exactly one 64-bit value
debug_assert!(bytes.len() == 8);
unsafe {
- ptr::copy_nonoverlapping(mem::transmute(&bytes[0]), &mut self.value, 1)
+ ptr::copy_nonoverlapping(&bytes[0] as *const u8 as *const u64, &mut self.value, 1)
}
}
/// contents of an `Map`. However, because you will then be dealing with `Any` trait objects, it
/// doesn’t tend to be so very useful. Still, if you need it, it’s here.
#[derive(Debug)]
-pub struct RawMap<A: ?Sized + UncheckedAnyExt = Any> {
+pub struct RawMap<A: ?Sized + UncheckedAnyExt = dyn Any> {
inner: HashMap<TypeId, Box<A>, BuildHasherDefault<TypeIdHasher>>,
}
}
}
-impl<A: ?Sized + UncheckedAnyExt> Default for RawMap<A> {
- #[inline]
- fn default() -> RawMap<A> {
- RawMap::new()
- }
-}
-
impl_common_methods! {
field: RawMap.inner;
new() => HashMap::with_hasher(Default::default());