use std::collections::HashMap;
 use std::collections::hash_map;
 use std::hash::{Hash, Hasher, Writer};
 use std::collections::HashMap;
 use std::collections::hash_map;
 use std::hash::{Hash, Hasher, Writer};
 use std::raw::TraitObject;
 
 pub use Entry::{Vacant, Occupied};
 use std::raw::TraitObject;
 
 pub use Entry::{Vacant, Occupied};
     #[inline]
     unsafe fn downcast_ref_unchecked<T: 'static>(self) -> &'a T {
         // Get the raw representation of the trait object
     #[inline]
     unsafe fn downcast_ref_unchecked<T: 'static>(self) -> &'a T {
         // Get the raw representation of the trait object
     #[inline]
     unsafe fn downcast_mut_unchecked<T: 'static>(self) -> &'a mut T {
         // Get the raw representation of the trait object
     #[inline]
     unsafe fn downcast_mut_unchecked<T: 'static>(self) -> &'a mut T {
         // Get the raw representation of the trait object