-
staticstep
Provides truly zero-cost alternatives to Iterator::step_by for both incrementing and decrementing any type that satisfies RangeBounds<T: Copy + Default + Step>.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
TLDR it now completely matches StepBy's behaviour and still is not any slower than it was previously.
It's not a matter of operator precedence, but a case of precedence inversion: Long ago I fixed rustc so that all 4 versions of .. (.., a.., ..b and a..b) have the same operator precedence, and refuse to accept code involving precedence inversions. Thus, .. .method() alone is invalid syntax, because .. has lower precedence than . and thus .. cannot appear as operand on the left-hand-side of .. However, only .. has parser logic to prevent priority inversions, lambdas don't. So the .method() call instead takes the whole lambda as its left-hand-side :( https://github.com/rust-lang/rust/issues/28785#issuecomment-154826874
To know I suggest reading through the RFC thread. I didn't see the answer in the RFC itself or the first couple pages, so I gave up, but it might be there if you dig a bit more.