Consider replacing the use of HashMap with a slot map in Storage. This could improve performance (benchmarks?). This crate looks promising.
However, edges currently use keys built from their corresponding vertex keys, which is incompatible with slot maps (because it requires being able to specify the key). Examine this pattern to see if it can be removed or modified or if continuing to use HashMap for edges is a better approach.