
I have a structure of the form
HashMap<u32, Rc<T>>
for some genericT
. 
I need to store multiple copies of this map at points in time, say
m_0, m_1, m_2, ..., m_n
where m_(i+1)
is “small edit” on m_i
where by “small edit” I mean a small number of insert/delete/update (far smaller than total # of elements in the actual map itself).
 Operations I need to be fast are:
3.1 for i: u32, k: u32
, get me value of m_i[k] > Option<T>
3.2 for i:u32
, calc diff between m_i
and m_(i+1)
=====
Any advice on what data structure (whether Rust has a builtin or not) to use?