Ugh, please don't start with this idiological hard headedness. There are reasons why other languages are being used. There are tradeoffs as well, and I am not saying Rust should forget it's roots in low level systems development. However if Rust is meant to become a modern language with a future, it does have to think about how it can utilize ideas from the "top-down" OOP world.
Rust is definitely coming from the bottom-up, low-level, control > ergonomics side of the spectrum, and that is the right way to be, because it's efficient. However it can be unproductive, which is also where a lot of bad reputation for such languages comes from in the industry. It is unproductive when top performance is not one of your priorities, which is almost always the case for new projects, except for games.
The top-down languages come from the human's perspective, not from the computer's one. After all, a programming language is a human-computer interface. Any language which is supposed to be adopted by a lot of programmers, also needs to be accessible for humans. I'm not talking about ecosystems or documentations, but actual language grammar and syntax. Rust does a great job at this mostly, especially considering that it is as performant as C++. I am just saying, Rust could strive to become even more ergonomic, especially at the object-relational level, and it would turn out a little more similar to C# or Java, and it would be more appealing to many not-so-technical programmers.
Those languages give humans tools for describing concepts and ideas, not computer programs. People think of "things with shapes and abilities". You want to be able to define classes of objects, types of objects, however you may call them, and also classes of classes, or types of types, basically non-terminal type definitions. Think Java abstract classes or C++ template specializations. Types are nothing else but the set of all objects/data structures with this specific shape, and humans want to be able to easily narrow down or extend those sets, because the real world is complex like that. You want to write functions which can take anything with only very specific properties. Rust does this with traits, Java with abstract classes. Traits are doing a great job for generics, but they do not help you structure your objects, they only build the interfaces between them. Often libraries do not use traits extensively, which makes the library hard to expand on, because Rust's type system is strong and hardly allows for anything abstract unless the generic interface is explicitly defined. You can't just derive from a public class, and you can't just make an existing class abstract by changing some keywords around, to use your own type with all of the libraries code. Object orientation in Java is pretty neat, I will have to give it that. It would be nice to have such a system in Rust, of course as minimally as possible.