new #rustlang crate drop: iddqd! ID-based maps where keys are borrowed from values. Four maps are included: IdOrdMap, IdHashMap, a bijective (1:1) BiHashMap and a trijective (1:1:1) TriHashMap.
At Oxide we've found this pattern to be extraordinarily useful. iddqd is no-std compatible, too!