@@ -2,13 +2,26 @@ use std::hash::BuildHasherDefault;
2
2
3
3
pub use rustc_hash:: { FxHashMap , FxHashSet , FxHasher } ;
4
4
5
+ pub type StdEntry < ' a , K , V > = std:: collections:: hash_map:: Entry < ' a , K , V > ;
6
+
5
7
pub type FxIndexMap < K , V > = indexmap:: IndexMap < K , V , BuildHasherDefault < FxHasher > > ;
6
8
pub type FxIndexSet < V > = indexmap:: IndexSet < V , BuildHasherDefault < FxHasher > > ;
9
+ pub type IndexEntry < ' a , K , V > = indexmap:: map:: Entry < ' a , K , V > ;
7
10
8
11
#[ macro_export]
9
12
macro_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) => {
11
14
pub type $map_name<T > = $crate:: fx:: FxHashMap <$key, T >;
12
15
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 >;
13
26
} ;
14
27
}
0 commit comments