Crate of the Week

I'd like to self-nominate:

  • It's a "concrete / real-life" result of using the #[gat] macro[1] to feature GATs on stable Rust (plus, internally, a pinch of ::polonius-the-crab to get polonius-like borrow-checking on stable Rust as well)
  • We can thus write things like .windows_mut(), which no other "flexible iterator" crate could express yet (afaik).

  • From what I've heard, writing certain parser implementations can be quite convenient with lending iterators (I'd welcome feedback from those having had the chance to experiment with it!).


[META]


  1. these #[gat] annotations are currently exposed and required, but they are expected to eventually smoothly disappear once generic_associated_types makes it to stable / through a Cargo feature opt-in. ↩︎

  2. ↩︎

17 Likes