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]
(If you intend to comment on any of these crates specifically, please open a dedicated thread for it, e.g., through the Reply as linked topic[2] option of Discourse)
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. âŠī¸
I would like to nominate runcc, a cli utility that can run multiple shell commands in parallel. I was looking for an alternative to the npm concurrently package and found this. It is actually better than concurrently as it either allows to run multiple commands directly or put them in configuration files for easy reuse. And just runs really reliably all the time I used it.
I'd like to nominate tuples, which so far is the only crate I've found that provides a .cloned() method for element-wise cloning, i.e. if you have a (&T, &U, &V) and you want a clone of type (T, U, V). It also has a bunch of other handy tuple manipulation helpers, it's no_std, and has a bunch of feature flags so you can opt out of stuff you don't need!
sql_query_builder Allow you to write SQL queries in a simple and composable way. The main goal is to find the best balance between write idiomatic SQL queries and manage scenarios of complex query composition mixed with conditional clauses.
I'd like to self-nominate shuttle, the only "Rust-native" solution to deploy your app. Cost-free and hassle-free. Just add one annotation to your main file, run the deploy command and you are good to go.
I'd like to nominate match_deref, a proc-macro that implements deref patterns on stable Rust. This solves a major pain point when working with recursive data structures, such as ASTs.
Since combining head and tail to get the top and bottom of a file/pipe is surprisingly difficult, a group of GitHub engineers decided to create headtail as a new open source project for fun (and because we wanted it to exist so we could use it)!
I'm the author of humansize, a size formatting crate that already has some adoption, but I just published a 2.0 version with new features and a revised API: https://lib.rs/crates/humansize
I'd like to self-nominate dlhn.
dlhn is a new serialization format, implemented using serde.
We have just released a version that fixes a critical bug.
I would like to make this known to those who are using the pre-fixed version.