Code review for a small CLI game

Hi! I'm very much a beginner at rust (~3 weeks) but wanted to challenge myself to make something fun, so I made guess-that-lang, a CLI game to see how fast you can guess the language of a code block. All feedback (including ideas for the game :)) would be appreciated, but to be specific, I'd love to know if

  • Any of my code could be simplified
  • Any of the crates I used could be replaced with a smaller/faster/better one
  • Any of my application structure could be refactored for readability or maintainability
  • Any handling of Results/Options could be improved

Thanks so much! :slight_smile:

The code generally seems well-organized to me, I don't think there's anything that needs to be refactored or optimized in particular. A couple very minor things:

  • There's a typo in the prompt ("corresponsing")
  • GameResult is basically the same as ControlFlow.
  • Game has both public and private fields. While this is technically allowed by the compiler, I generally consider it bad style. Either make the struct pure data with all public fields, or an invariant-preserving complex "object" with all private fields, exposing only the necessary state (perhaps immutably) via accessors.
3 Likes

Thanks so much!

  • I don't know how I never found that typo lol...
  • ControlFlow is super useful!
  • I'm going to make every field public, thanks for the tip

Thanks again :heart: :heart:

1 Like

Apologies for not reviewing the original code, bit I'd like to add my thanks to @H2CO3 for pointing out ControlFlow, which I had read about before
but had forgotten. Very useful!

2 Likes