@@ -2,13 +2,26 @@ use std::hash::BuildHasherDefault;
22
33pub use rustc_hash:: { FxHashMap , FxHashSet , FxHasher } ;
44
5+ pub type StdEntry < ' a , K , V > = std:: collections:: hash_map:: Entry < ' a , K , V > ;
6+
57pub type FxIndexMap < K , V > = indexmap:: IndexMap < K , V , BuildHasherDefault < FxHasher > > ;
68pub type FxIndexSet < V > = indexmap:: IndexSet < V , BuildHasherDefault < FxHasher > > ;
9+ pub type IndexEntry < ' a , K , V > = indexmap:: map:: Entry < ' a , K , V > ;
710
811#[ macro_export]
912macro_rules! define_id_collections {
10- ( $map_name: ident, $set_name: ident, $key: ty) => {
13+ ( $map_name: ident, $set_name: ident, $entry_name : ident , $ key: ty) => {
1114 pub type $map_name<T > = $crate:: fx:: FxHashMap <$key, T >;
1215 pub type $set_name = $crate:: fx:: FxHashSet <$key>;
16+ pub type $entry_name<' a, T > = $crate:: fx:: StdEntry <' a, $key, T >;
17+ } ;
18+ }
19+
20+ #[ macro_export]
21+ macro_rules! define_stable_id_collections {
22+ ( $map_name: ident, $set_name: ident, $entry_name: ident, $key: ty) => {
23+ pub type $map_name<T > = $crate:: fx:: FxIndexMap <$key, T >;
24+ pub type $set_name = $crate:: fx:: FxIndexSet <$key>;
25+ pub type $entry_name<' a, T > = $crate:: fx:: IndexEntry <' a, $key, T >;
1326 } ;
1427}
0 commit comments