ok mroth, since you asked for it and are trying to stay constructive.
I never found that "lint groups" page because I was searching google for warnings. The compiler calls them warnings And half of the warnings I was getting from rustc didn't show the way to shut them up. I ended up finding some reddit post to say to use rustc -W help.
I was very tired of getting yelled at for snake case, camel case, extra parens, unused imports, unnecessary mut, and must use from write! when writing to a string buffer -- all when I was struggling with the arcane borrow checker syntax, and doing my first (and probably last) hobby project with this language, much of which was porting code from c#.
I'm not experienced with one language, I'm experienced with many over the last 25 years. And they've all had "new style conventions" that don't make one flipping bit of difference in production code. How is not being able to use the 'use' feature of rust, and instead putting Self:: everywhere, actually a good thing. How would matching on Self be able to match anything besides a type of self in the first place?
These things aren't types. They're just const ints, that are related. This is important for serialization. I'm not doing some academic type theory here. These are just integers that are serialized to a game data save file.
I read (many) times that the way to match all is _. But it appears there are other magic ways to match _. And it appears I can't actually use 'use' when I want. All of this makes me sad.
To be blunt, I would have been just as productive with c++ and a checked iterators library, or especially c# AOT, but that would have made a bigger wasm download. The only reason I was experimenting with rust was for WASM download size vs c#.
Rust is an innovative language, but it is not fun to work with. Perhaps it should be called 'bikeshedc', if it cares SO MUCH About not having screaming case for const ints, like people have done for 50 years.
I have found that people who are really experienced do not have this religious mentality about names of variables, but instead, care about if the language has footguns and is it cohesive, and does it have principle of least surprise.