Is it possible to do in Rust?
Yes
Is possible to do in Rust, by mistake, and not easily caught by a review?
Definitively not.
Is it possible to do in Rust?
Yes
Is possible to do in Rust, by mistake, and not easily caught by a review?
Definitively not.
DRY and YAGNI are awesome iif you also practice YNIRN (You Need It Right Now)! Otherwise you just get boilerplate of spaghetti
You got me in the first 3 quarters, not gonna lie!
There are cases where instead of origin/master..HEAD
you may want to use @{upstream}..HEAD
instead to compare with the upstream of your current branch. It's unfortunately quite unknown.
The fact that rustc has bugs (which is what cve-rs exploit) doesn't invalidate that rust the language is memory safe.
This post from 2022 was very interesting:
There are approximately 1.5 million total lines of Rust code in AOSP across new functionality and components [...] These are low-level components that require a systems language which otherwise would have been implemented in C++.
To date, there have been zero memory safety vulnerabilities discovered in Android’s Rust code.
https://security.googleblog.com/2022/12/memory-safe-languages-in-android-13.html
git worktree
could become your new friend then :)
The quote (and the associated discussion) is such an important part of Rust and why I love this language so much. Anything that can be automated should at one point be automated reliably, and the sooner the better.
It's a question of workflow. Git doesn't guide you (it's really workflow agnostic) and I find it easier to taillor CLI to fit my exact need, or use whatever was recently added (like worktrees a few years ago). I have yet to find a GUI/TUI that I'm not frustrated with at one point but everyone has its own preferences.
If you use the git command line (and I do) you should spam git log --graph
(usualy with --oneline
).
And for your filesystem example I sure do hope you use tree
!
Thank you! I didn’t realized that I was using my lemmy account and not my mastodon account.
Neither foo(), nor add_missing_values() looks suspicious. Nonetheless, if
v.push_back(3)
requiresv
to grow, thenref
becomes an invalid reference andstd::cout << ref
becomes UB (use after free). In Rust this would not compiles.It is order of magnitudes easier to have lifetime errors in C++ than in Rust (use after free, double free, data races, use before initialisation, …)