Re:Sapper, a lightweight web framework written in Rust
by steveklabnik on Thursday June 02, 2016 @03:47PM
(#11825487)
To be clear, I do as well. Some things are just inherently complex, though.
The only reason they're added here is that they're not able to be inferred, and the reason they're all the same is that you're explicitly connecting the lifetime of each of these things.
nom is for building extremely fast, extremely low-overhead parsers. When you're trying to do stuff like that, you can't always afford convenience stuff. Consider if you had to write all the code the macros generate by hand!
[ Parent
| on HN ]
Re:Sapper, a lightweight web framework written in Rust
by e12e on Thursday June 02, 2016 @11:14PM
(#11828064)
> The only reason they're added here is that they're not able to be inferred, and the reason they're all the same is that you're explicitly connecting the lifetime of each of these things.
Is the default of having them all be implicitly different, or unlinked, lifetimes very useful?
Re:Sapper, a lightweight web framework written in Rust
by steveklabnik on Friday June 03, 2016 @12:11PM
(#11831174)
If you don't write anything at all, the "lifetime elision rules" kick in: http://doc.rust-lang.org/stable/book/lifetimes.html#lifetime...
We used to only have the first of those three rules. When we added the other two, almost 90% of lifetime annotations in function declarations were able to be removed from the compiler and standard library.