this post was submitted on 15 Mar 2026
64 points (97.1% liked)

Rust

7855 readers
88 users here now

Welcome to the Rust community! This is a place to discuss about the Rust programming language.

Wormhole

!performance@programming.dev

Credits

  • The icon is a modified version of the official rust logo (changing the colors to a gradient and black background)

founded 2 years ago
MODERATORS
 

I recently started learning rust, and I was ready for one hell of a fight. I heard all those horror Storys about the compiler complaining about every single detail and that developing rust means having a constant fight with the compiler about seemingly irrelevant things. However, so far I have to tell, that while its somewhat true, that the compiler is somewhat picky, it is incredibly helpful. Never before have I seen such good and helpful compiler messages. It not only says what you did wrong, but also gives direct help on what to do to fix your code. I also really like, that it gives you direct references to the rust book in the compiler messages.

Prior to starting my journey with rust I did quite a lot of python, some C and some bash and their interpreter/compiler messages are nothing when comparing them with rust. Especially the bash error messages are awful if you do not know what they mean and how to fix them.

you are viewing a single comment's thread
view the rest of the comments
[โ€“] SorteKanin@feddit.dk 2 points 5 hours ago (1 children)

Others have already pointed out the issue - in Rust, String is UTF-8 encoded and therefore characters are variable length. So you can't just change a character in a string, as it may not fit (e.g. replacing 'a' with '๐Ÿ™‚' would lead to trouble).

You can do what the others suggest, but honestly for a game like hangman, I'd suggest you just work directly with chars and don't use any string. As in, just use a Vec instead of a string. Then you can freely change characters based on index, but this representation uses more memory than a typical String. But this won't matter for your use case.

Working with a vector directly would probably be easier, however for a learning experience this was actually great. I read through quite a lot of documentation trying to figure out how I achieve what I want. Might reimplement it with vectors later just for the learning experience.