If you understand lifetimes of closures and https://doc.rust-lang.org/reference/subtyping.html
You might be on the right level.
Need review of 1000 lines of Rust code. The data structures used are like 7 vecs/hashmaps so its somewhat easy to understand.