Sidenote : i found this code quite readable. I'm usually reading Rust code here on HN that's full of weird lifetime annotations or Dyn or super long generic types. As a non-rust dev this freaked me out. How common is this kind of code in practice ?
I'm sure there are plenty of other use cases for lifetimes, but they don't come up very often when writing standard "application" code.