Small exercises to get you used to reading and writing Rust code
Rust HTML
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
error_handling update old book references to the second edition of the book Jul 20, 2018
functions Fix line numbers Mar 4, 2018
if Added filename to top of .rs files Feb 22, 2018
macros Added filename to top of .rs files Feb 22, 2018
modules Merge pull request #63 from bjornwsv/patch-1 Mar 4, 2018
move_semantics Fixing main function errors in move_semantics/ Aug 16, 2018
primitive_types update old book references to the second edition of the book Jul 20, 2018
src/bin Don't be lazy, actually read the file instead of including it at comp… Mar 4, 2018
standard_library_types update old book references to the second edition of the book Jul 20, 2018
strings Fix line numbers Mar 4, 2018
tests Added filename to top of .rs files Feb 22, 2018
threads update old book references to the second edition of the book Jul 20, 2018
variables Fix line numbers Mar 4, 2018
.gitignore Start a script to regenerate README.md from a template Mar 4, 2018
.travis.yml Not having anything to commit isn't an error Mar 6, 2018
Cargo.toml Update to btbytes' prlink because they merged my PR already!! Mar 4, 2018
LICENSE Update LICENSE year. Mar 27, 2016
README-template.hbs Update the updated book links Mar 4, 2018
README.md Merge pull request #84 from mrcosta/master Jul 31, 2018
ex1.rs Start of trying to make travis update the readme Mar 4, 2018
ex2.rs Added filename to top of .rs files Feb 22, 2018
ex3.rs Added filename to top of .rs files Feb 22, 2018
ex4.rs Added filename to top of .rs files Feb 22, 2018
ex5.rs Added filename to top of .rs files Feb 22, 2018

README.md

rustlings

Small exercises to get you used to reading and writing Rust code. Includes practice reading and responding to compiler messages!

This repo is very much the smallest thing that could possibly work :)

To do these exercises

Thanks to btbytes' prlinks, you can now click on the links below to load the exercises in the rust playground!

There are infinite correct answers-- the exercises are sometimes left very open-ended. Scroll down in the playground to find comments that have hints.

To do these exercises in your local environment and execute them online afterwards:

  • clone the repo to your local environment: git clone git@github.com:rustlings/rustlings.git
  • edit the rustling that you want, per example variables/variables1.rs
  • run cargo run in the project folder
  • you will notice that you README file was modified and now it has the new content of the file that you edited
  • click in the new URL in the README and you will redirect to the rust playground and the whole file content it will be loaded
  • to execute in the rust playground, just click on run

Need help?

If you need more help or would like to compare solutions, you can ask in #rust-beginners on irc.mozilla.org, the user forum, or the subreddit. If an exercise could be improved in any way, please create an issue or submit a pull request!

Variable bindings

Relevant chapter in The Rust Programming Language

Functions

Relevant chapter in The Rust Programming Language

Primitive types

Relevant chapter in The Rust Programming Language

Tests

Going out of order from the book to cover tests-- many of the following exercises will ask you to make tests pass!

Relevant chapter in The Rust Programming Language

If

Relevant chapter in The Rust Programming Language

Strings

Relevant chapter in The Rust Programming Language

Move semantics

These exercises are adapted from pnkfelix's Rust Tutorial -- thank you Felix!!!

Relevant chapters in the book:

Note that the exercises in this section may look similar to each other but they are subtly different :)

Modules

Relevant chapter in The Rust Programming Language

Macros

Check out:

Error Handling

The Error Handling and Generics sections are relevant.

Standard library types

Arc

The Concurrency section is relevant.

Iterators

Do not adjust your monitors-- iterators 1 and 2 are indeed missing. Iterator 3 is a bit challenging so we're leaving space for some exercises to lead up to it!

Check out the Iterators chapter of the book and the Iterator docs.

Threads

See the Dining Philosophers example and the Concurrency Chapter from the book.

Uncategorized

A few exercises based on things I've encountered or had trouble with getting used to.

To help with this repo/TODO list

  • File issues for problems or suggestions!
  • Contribute more exercises! Anything that took you time to get used to, or that you had trouble with, or that deserves practice would be a good exercise!
  • How could the process of doing these exercises work better? This is an open-ended question :) Are the playground links good enough? Are there ways that we could make going to the next exercise easier without forking the playground??