Β§2024-06-24
ΒΆMacOS/Linux
Just run:
curl -L https://raw.githubusercontent.com/rust-lang/rustlings/main/install.sh | bash
This will create a folder in the current directory called rustlings, so be sure to switch to whatever location you want to use to keep things organized.
Then
$ which rustlings
/home/alexlai/.cargo/bin/rustlings
$ tree ~/rustlings/
/home/alexlai/rustlings/
βββ AUTHORS.md
βββ Cargo.lock
βββ Cargo.toml
βββ CHANGELOG.md
βββ CONTRIBUTING.md
βββ exercises
βΒ Β βββ clippy
βΒ Β βΒ Β βββ clippy1.rs
βΒ Β βΒ Β βββ clippy2.rs
βΒ Β βΒ Β βββ clippy3.rs
βΒ Β βΒ Β βββ README.md
βΒ Β βββ conversions
βΒ Β βΒ Β βββ as_ref_mut.rs
βΒ Β βΒ Β βββ from_into.rs
βΒ Β βΒ Β βββ from_str.rs
βΒ Β βΒ Β βββ README.md
βΒ Β βΒ Β βββ try_from_into.rs
βΒ Β βΒ Β βββ using_as.rs
βΒ Β βββ enums
βΒ Β βΒ Β βββ enums1.rs
βΒ Β βΒ Β βββ enums2.rs
βΒ Β βΒ Β βββ enums3.rs
βΒ Β βΒ Β βββ README.md
βΒ Β βββ error_handling
βΒ Β βΒ Β βββ errors1.rs
βΒ Β βΒ Β βββ errors2.rs
βΒ Β βΒ Β βββ errors3.rs
βΒ Β βΒ Β βββ errors4.rs
βΒ Β βΒ Β βββ errors5.rs
βΒ Β βΒ Β βββ errors6.rs
βΒ Β βΒ Β βββ README.md
βΒ Β βββ functions
βΒ Β βΒ Β βββ functions1.rs
βΒ Β βΒ Β βββ functions2.rs
βΒ Β βΒ Β βββ functions3.rs
βΒ Β βΒ Β βββ functions4.rs
βΒ Β βΒ Β βββ functions5.rs
βΒ Β βΒ Β βββ README.md
βΒ Β βββ generics
βΒ Β βΒ Β βββ generics1.rs
βΒ Β βΒ Β βββ generics2.rs
βΒ Β βΒ Β βββ README.md
βΒ Β βββ hashmaps
βΒ Β βΒ Β βββ hashmaps1.rs
βΒ Β βΒ Β βββ hashmaps2.rs
βΒ Β βΒ Β βββ hashmaps3.rs
βΒ Β βΒ Β βββ README.md
βΒ Β βββ if
βΒ Β βΒ Β βββ if1.rs
βΒ Β βΒ Β βββ if2.rs
βΒ Β βΒ Β βββ if3.rs
βΒ Β βΒ Β βββ README.md
βΒ Β βββ intro
βΒ Β βΒ Β βββ intro1.rs
βΒ Β βΒ Β βββ intro2.rs
βΒ Β βΒ Β βββ README.md
βΒ Β βββ iterators
βΒ Β βΒ Β βββ iterators1.rs
βΒ Β βΒ Β βββ iterators2.rs
βΒ Β βΒ Β βββ iterators3.rs
βΒ Β βΒ Β βββ iterators4.rs
βΒ Β βΒ Β βββ iterators5.rs
βΒ Β βΒ Β βββ README.md
βΒ Β βββ lifetimes
βΒ Β βΒ Β βββ lifetimes1.rs
βΒ Β βΒ Β βββ lifetimes2.rs
βΒ Β βΒ Β βββ lifetimes3.rs
βΒ Β βΒ Β βββ README.md
βΒ Β βββ macros
βΒ Β βΒ Β βββ macros1.rs
βΒ Β βΒ Β βββ macros2.rs
βΒ Β βΒ Β βββ macros3.rs
βΒ Β βΒ Β βββ macros4.rs
βΒ Β βΒ Β βββ README.md
βΒ Β βββ modules
βΒ Β βΒ Β βββ modules1.rs
βΒ Β βΒ Β βββ modules2.rs
βΒ Β βΒ Β βββ modules3.rs
βΒ Β βΒ Β βββ README.md
βΒ Β βββ move_semantics
βΒ Β βΒ Β βββ move_semantics1.rs
βΒ Β βΒ Β βββ move_semantics2.rs
βΒ Β βΒ Β βββ move_semantics3.rs
βΒ Β βΒ Β βββ move_semantics4.rs
βΒ Β βΒ Β βββ move_semantics5.rs
βΒ Β βΒ Β βββ move_semantics6.rs
βΒ Β βΒ Β βββ README.md
βΒ Β βββ options
βΒ Β βΒ Β βββ options1.rs
βΒ Β βΒ Β βββ options2.rs
βΒ Β βΒ Β βββ options3.rs
βΒ Β βΒ Β βββ README.md
βΒ Β βββ primitive_types
βΒ Β βΒ Β βββ primitive_types1.rs
βΒ Β βΒ Β βββ primitive_types2.rs
βΒ Β βΒ Β βββ primitive_types3.rs
βΒ Β βΒ Β βββ primitive_types4.rs
βΒ Β βΒ Β βββ primitive_types5.rs
βΒ Β βΒ Β βββ primitive_types6.rs
βΒ Β βΒ Β βββ README.md
βΒ Β βββ quiz1.rs
βΒ Β βββ quiz2.rs
βΒ Β βββ quiz3.rs
βΒ Β βββ README.md
βΒ Β βββ smart_pointers
βΒ Β βΒ Β βββ arc1.rs
βΒ Β βΒ Β βββ box1.rs
βΒ Β βΒ Β βββ cow1.rs
βΒ Β βΒ Β βββ rc1.rs
βΒ Β βΒ Β βββ README.md
βΒ Β βββ strings
βΒ Β βΒ Β βββ README.md
βΒ Β βΒ Β βββ strings1.rs
βΒ Β βΒ Β βββ strings2.rs
βΒ Β βΒ Β βββ strings3.rs
βΒ Β βΒ Β βββ strings4.rs
βΒ Β βββ structs
βΒ Β βΒ Β βββ README.md
βΒ Β βΒ Β βββ structs1.rs
βΒ Β βΒ Β βββ structs2.rs
βΒ Β βΒ Β βββ structs3.rs
βΒ Β βββ tests
βΒ Β βΒ Β βββ README.md
βΒ Β βΒ Β βββ tests1.rs
βΒ Β βΒ Β βββ tests2.rs
βΒ Β βΒ Β βββ tests3.rs
βΒ Β βΒ Β βββ tests4.rs
βΒ Β βββ threads
βΒ Β βΒ Β βββ README.md
βΒ Β βΒ Β βββ threads1.rs
βΒ Β βΒ Β βββ threads2.rs
βΒ Β βΒ Β βββ threads3.rs
βΒ Β βββ traits
βΒ Β βΒ Β βββ README.md
βΒ Β βΒ Β βββ traits1.rs
βΒ Β βΒ Β βββ traits2.rs
βΒ Β βΒ Β βββ traits3.rs
βΒ Β βΒ Β βββ traits4.rs
βΒ Β βΒ Β βββ traits5.rs
βΒ Β βββ variables
βΒ Β βΒ Β βββ README.md
βΒ Β βΒ Β βββ variables1.rs
βΒ Β βΒ Β βββ variables2.rs
βΒ Β βΒ Β βββ variables3.rs
βΒ Β βΒ Β βββ variables4.rs
βΒ Β βΒ Β βββ variables5.rs
βΒ Β βΒ Β βββ variables6.rs
βΒ Β βββ vecs
βΒ Β βββ README.md
βΒ Β βββ vecs1.rs
βΒ Β βββ vecs2.rs
βββ flake.lock
βββ flake.nix
βββ info.toml
βββ install.ps1
βββ install.sh
βββ LICENSE
βββ oranda.json
βββ README.md
βββ shell.nix
βββ src
βΒ Β βββ exercise.rs
βΒ Β βββ main.rs
βΒ Β βββ project.rs
βΒ Β βββ run.rs
βΒ Β βββ ui.rs
βΒ Β βββ verify.rs
βββ target
βΒ Β βββ CACHEDIR.TAG
βΒ Β βββ release
βΒ Β βββ build
βΒ Β βΒ Β βββ libc-137edcf4c3fba36d
βΒ Β βΒ Β βΒ Β βββ invoked.timestamp
βΒ Β βΒ Β βΒ Β βββ out
βΒ Β βΒ Β βΒ Β βββ output
βΒ Β βΒ Β βΒ Β βββ root-output
βΒ Β βΒ Β βΒ Β βββ stderr
βΒ Β βΒ Β βββ libc-13dd37895401f1aa
βΒ Β βΒ Β βΒ Β βββ build-script-build
βΒ Β βΒ Β βΒ Β βββ build_script_build-13dd37895401f1aa
βΒ Β βΒ Β βΒ Β βββ build_script_build-13dd37895401f1aa.d
βΒ Β βΒ Β βββ log-ac98eecacd8b2e02
βΒ Β βΒ Β βΒ Β βββ invoked.timestamp
βΒ Β βΒ Β βΒ Β βββ out
βΒ Β βΒ Β βΒ Β βββ output
βΒ Β βΒ Β βΒ Β βββ root-output
βΒ Β βΒ Β βΒ Β βββ stderr
βΒ Β βΒ Β βββ log-edd6d1fe679d3dac
βΒ Β βΒ Β βΒ Β βββ build-script-build
βΒ Β βΒ Β βΒ Β βββ build_script_build-edd6d1fe679d3dac
βΒ Β βΒ Β βΒ Β βββ build_script_build-edd6d1fe679d3dac.d
βΒ Β βΒ Β βββ portable-atomic-16d7c4979bce940e
βΒ Β βΒ Β βΒ Β βββ invoked.timestamp
βΒ Β βΒ Β βΒ Β βββ out
βΒ Β βΒ Β βΒ Β βββ output
βΒ Β βΒ Β βΒ Β βββ root-output
βΒ Β βΒ Β βΒ Β βββ stderr
βΒ Β βΒ Β βββ portable-atomic-24572b3621a419a7
βΒ Β βΒ Β βΒ Β βββ build-script-build
βΒ Β βΒ Β βΒ Β βββ build_script_build-24572b3621a419a7
βΒ Β βΒ Β βΒ Β βββ build_script_build-24572b3621a419a7.d
βΒ Β βΒ Β βββ proc-macro2-2a1c14b579c4994c
βΒ Β βΒ Β βΒ Β βββ invoked.timestamp
βΒ Β βΒ Β βΒ Β βββ out
βΒ Β βΒ Β βΒ Β βββ output
βΒ Β βΒ Β βΒ Β βββ root-output
βΒ Β βΒ Β βΒ Β βββ stderr
βΒ Β βΒ Β βββ proc-macro2-93b164b06d6f8ff9
βΒ Β βΒ Β βΒ Β βββ build-script-build
βΒ Β βΒ Β βΒ Β βββ build_script_build-93b164b06d6f8ff9
βΒ Β βΒ Β βΒ Β βββ build_script_build-93b164b06d6f8ff9.d
βΒ Β βΒ Β βββ quote-23ce6b7dfb4c296d
βΒ Β βΒ Β βΒ Β βββ invoked.timestamp
βΒ Β βΒ Β βΒ Β βββ out
βΒ Β βΒ Β βΒ Β βββ output
βΒ Β βΒ Β βΒ Β βββ root-output
βΒ Β βΒ Β βΒ Β βββ stderr
βΒ Β βΒ Β βββ quote-a5390ff22875e334
βΒ Β βΒ Β βΒ Β βββ build-script-build
βΒ Β βΒ Β βΒ Β βββ build_script_build-a5390ff22875e334
βΒ Β βΒ Β βΒ Β βββ build_script_build-a5390ff22875e334.d
βΒ Β βΒ Β βββ serde-237ccf37e9382a14
βΒ Β βΒ Β βΒ Β βββ build-script-build
βΒ Β βΒ Β βΒ Β βββ build_script_build-237ccf37e9382a14
βΒ Β βΒ Β βΒ Β βββ build_script_build-237ccf37e9382a14.d
βΒ Β βΒ Β βββ serde-b3ebe12921ea63d1
βΒ Β βΒ Β βΒ Β βββ invoked.timestamp
βΒ Β βΒ Β βΒ Β βββ out
βΒ Β βΒ Β βΒ Β βββ output
βΒ Β βΒ Β βΒ Β βββ root-output
βΒ Β βΒ Β βΒ Β βββ stderr
βΒ Β βΒ Β βββ serde_derive-80bc99193515adda
βΒ Β βΒ Β βΒ Β βββ build-script-build
βΒ Β βΒ Β βΒ Β βββ build_script_build-80bc99193515adda
βΒ Β βΒ Β βΒ Β βββ build_script_build-80bc99193515adda.d
βΒ Β βΒ Β βββ serde_derive-fbf8e10b69ef63a7
βΒ Β βΒ Β βΒ Β βββ invoked.timestamp
βΒ Β βΒ Β βΒ Β βββ out
βΒ Β βΒ Β βΒ Β βββ output
βΒ Β βΒ Β βΒ Β βββ root-output
βΒ Β βΒ Β βΒ Β βββ stderr
βΒ Β βΒ Β βββ serde_json-8ef3238e2d705b40
βΒ Β βΒ Β βΒ Β βββ invoked.timestamp
βΒ Β βΒ Β βΒ Β βββ out
βΒ Β βΒ Β βΒ Β βββ output
βΒ Β βΒ Β βΒ Β βββ root-output
βΒ Β βΒ Β βΒ Β βββ stderr
βΒ Β βΒ Β βββ serde_json-b4495d3405e5320f
βΒ Β βΒ Β βΒ Β βββ build-script-build
βΒ Β βΒ Β βΒ Β βββ build_script_build-b4495d3405e5320f
βΒ Β βΒ Β βΒ Β βββ build_script_build-b4495d3405e5320f.d
βΒ Β βΒ Β βββ slab-5788ba0e9685763a
βΒ Β βΒ Β βΒ Β βββ invoked.timestamp
βΒ Β βΒ Β βΒ Β βββ out
βΒ Β βΒ Β βΒ Β βΒ Β βββ probe0.ll
βΒ Β βΒ Β βΒ Β βββ output
βΒ Β βΒ Β βΒ Β βββ root-output
βΒ Β βΒ Β βΒ Β βββ stderr
βΒ Β βΒ Β βββ slab-debc6a4c64ca38cc
βΒ Β βΒ Β βββ build-script-build
βΒ Β βΒ Β βββ build_script_build-debc6a4c64ca38cc
βΒ Β βΒ Β βββ build_script_build-debc6a4c64ca38cc.d
βΒ Β βββ deps
βΒ Β βΒ Β βββ aho_corasick-96d237fb3c287d7a.d
βΒ Β βΒ Β βββ anstream-20bf192ff1bed530.d
βΒ Β βΒ Β βββ anstyle-4a78f7c1d1b08568.d
βΒ Β βΒ Β βββ anstyle_parse-52a9067d4c942508.d
βΒ Β βΒ Β βββ anstyle_query-25c9f99a0f7b5652.d
βΒ Β βΒ Β βββ autocfg-831d4ca292eee5d6.d
βΒ Β βΒ Β βββ bitflags-c9f49548e3c37de9.d
βΒ Β βΒ Β βββ cfg_if-22ef46fe85ecc493.d
βΒ Β βΒ Β βββ cfg_if-c743cf0a66dac05b.d
βΒ Β βΒ Β βββ clap-07fe5e10df3d7bd7.d
βΒ Β βΒ Β βββ clap_builder-2d5aa0d5cbb38f61.d
βΒ Β βΒ Β βββ clap_derive-ce5ad98c71dc3498.d
βΒ Β βΒ Β βββ clap_lex-bf65de938a07239f.d
βΒ Β βΒ Β βββ colorchoice-865d7838a50de6b6.d
βΒ Β βΒ Β βββ console-06f277a3ee2ad3dc.d
βΒ Β βΒ Β βββ equivalent-3e6ecf7ab8d4a815.d
βΒ Β βΒ Β βββ filetime-bf4857c9cf72815c.d
βΒ Β βΒ Β βββ glob-a6590f7181374bb3.d
βΒ Β βΒ Β βββ hashbrown-2ea9692c85d8ec7c.d
βΒ Β βΒ Β βββ heck-ce8a5f2220bf6de9.d
βΒ Β βΒ Β βββ home-655975e49dfb49c7.d
βΒ Β βΒ Β βββ indexmap-b0063f11b34a6962.d
βΒ Β βΒ Β βββ indicatif-4117be1dd7450cfb.d
βΒ Β βΒ Β βββ inotify-1d1237b997b98b7c.d
βΒ Β βΒ Β βββ inotify_sys-2b0e08c7eb935fa1.d
βΒ Β βΒ Β βββ iovec-9601b0749a32fec2.d
βΒ Β βΒ Β βββ itoa-a39a3fffd9d4fb52.d
βΒ Β βΒ Β βββ lazycell-be6f84df06a41827.d
βΒ Β βΒ Β βββ lazy_static-567380670d619c3c.d
βΒ Β βΒ Β βββ libaho_corasick-96d237fb3c287d7a.rlib
βΒ Β βΒ Β βββ libaho_corasick-96d237fb3c287d7a.rmeta
βΒ Β βΒ Β βββ libanstream-20bf192ff1bed530.rlib
βΒ Β βΒ Β βββ libanstream-20bf192ff1bed530.rmeta
βΒ Β βΒ Β βββ libanstyle-4a78f7c1d1b08568.rlib
βΒ Β βΒ Β βββ libanstyle-4a78f7c1d1b08568.rmeta
βΒ Β βΒ Β βββ libanstyle_parse-52a9067d4c942508.rlib
βΒ Β βΒ Β βββ libanstyle_parse-52a9067d4c942508.rmeta
βΒ Β βΒ Β βββ libanstyle_query-25c9f99a0f7b5652.rlib
βΒ Β βΒ Β βββ libanstyle_query-25c9f99a0f7b5652.rmeta
βΒ Β βΒ Β βββ libautocfg-831d4ca292eee5d6.rlib
βΒ Β βΒ Β βββ libautocfg-831d4ca292eee5d6.rmeta
βΒ Β βΒ Β βββ libbitflags-c9f49548e3c37de9.rlib
βΒ Β βΒ Β βββ libbitflags-c9f49548e3c37de9.rmeta
βΒ Β βΒ Β βββ libc-beb1ac36a781759c.d
βΒ Β βΒ Β βββ libcfg_if-22ef46fe85ecc493.rlib
βΒ Β βΒ Β βββ libcfg_if-22ef46fe85ecc493.rmeta
βΒ Β βΒ Β βββ libcfg_if-c743cf0a66dac05b.rlib
βΒ Β βΒ Β βββ libcfg_if-c743cf0a66dac05b.rmeta
βΒ Β βΒ Β βββ libclap-07fe5e10df3d7bd7.rlib
βΒ Β βΒ Β βββ libclap-07fe5e10df3d7bd7.rmeta
βΒ Β βΒ Β βββ libclap_builder-2d5aa0d5cbb38f61.rlib
βΒ Β βΒ Β βββ libclap_builder-2d5aa0d5cbb38f61.rmeta
βΒ Β βΒ Β βββ libclap_derive-ce5ad98c71dc3498.so
βΒ Β βΒ Β βββ libclap_lex-bf65de938a07239f.rlib
βΒ Β βΒ Β βββ libclap_lex-bf65de938a07239f.rmeta
βΒ Β βΒ Β βββ libcolorchoice-865d7838a50de6b6.rlib
βΒ Β βΒ Β βββ libcolorchoice-865d7838a50de6b6.rmeta
βΒ Β βΒ Β βββ libconsole-06f277a3ee2ad3dc.rlib
βΒ Β βΒ Β βββ libconsole-06f277a3ee2ad3dc.rmeta
βΒ Β βΒ Β βββ libequivalent-3e6ecf7ab8d4a815.rlib
βΒ Β βΒ Β βββ libequivalent-3e6ecf7ab8d4a815.rmeta
βΒ Β βΒ Β βββ libfiletime-bf4857c9cf72815c.rlib
βΒ Β βΒ Β βββ libfiletime-bf4857c9cf72815c.rmeta
βΒ Β βΒ Β βββ libglob-a6590f7181374bb3.rlib
βΒ Β βΒ Β βββ libglob-a6590f7181374bb3.rmeta
βΒ Β βΒ Β βββ libhashbrown-2ea9692c85d8ec7c.rlib
βΒ Β βΒ Β βββ libhashbrown-2ea9692c85d8ec7c.rmeta
βΒ Β βΒ Β βββ libheck-ce8a5f2220bf6de9.rlib
βΒ Β βΒ Β βββ libheck-ce8a5f2220bf6de9.rmeta
βΒ Β βΒ Β βββ libhome-655975e49dfb49c7.rlib
βΒ Β βΒ Β βββ libhome-655975e49dfb49c7.rmeta
βΒ Β βΒ Β βββ libindexmap-b0063f11b34a6962.rlib
βΒ Β βΒ Β βββ libindexmap-b0063f11b34a6962.rmeta
βΒ Β βΒ Β βββ libindicatif-4117be1dd7450cfb.rlib
βΒ Β βΒ Β βββ libindicatif-4117be1dd7450cfb.rmeta
βΒ Β βΒ Β βββ libinotify-1d1237b997b98b7c.rlib
βΒ Β βΒ Β βββ libinotify-1d1237b997b98b7c.rmeta
βΒ Β βΒ Β βββ libinotify_sys-2b0e08c7eb935fa1.rlib
βΒ Β βΒ Β βββ libinotify_sys-2b0e08c7eb935fa1.rmeta
βΒ Β βΒ Β βββ libiovec-9601b0749a32fec2.rlib
βΒ Β βΒ Β βββ libiovec-9601b0749a32fec2.rmeta
βΒ Β βΒ Β βββ libitoa-a39a3fffd9d4fb52.rlib
βΒ Β βΒ Β βββ libitoa-a39a3fffd9d4fb52.rmeta
βΒ Β βΒ Β βββ liblazycell-be6f84df06a41827.rlib
βΒ Β βΒ Β βββ liblazycell-be6f84df06a41827.rmeta
βΒ Β βΒ Β βββ liblazy_static-567380670d619c3c.rlib
βΒ Β βΒ Β βββ liblazy_static-567380670d619c3c.rmeta
βΒ Β βΒ Β βββ liblibc-beb1ac36a781759c.rlib
βΒ Β βΒ Β βββ liblibc-beb1ac36a781759c.rmeta
βΒ Β βΒ Β βββ liblog-71eb742e7d074743.rlib
βΒ Β βΒ Β βββ liblog-71eb742e7d074743.rmeta
βΒ Β βΒ Β βββ libmemchr-3381c97883e9e6cb.rlib
βΒ Β βΒ Β βββ libmemchr-3381c97883e9e6cb.rmeta
βΒ Β βΒ Β βββ libmio-d8e4c3bf5345ab4a.rlib
βΒ Β βΒ Β βββ libmio-d8e4c3bf5345ab4a.rmeta
βΒ Β βΒ Β βββ libmio_extras-f40585c6e3cffe91.rlib
βΒ Β βΒ Β βββ libmio_extras-f40585c6e3cffe91.rmeta
βΒ Β βΒ Β βββ libnet2-e5debbf2235aabd4.rlib
βΒ Β βΒ Β βββ libnet2-e5debbf2235aabd4.rmeta
βΒ Β βΒ Β βββ libnotify-ccbd2c9fa44f14ee.rlib
βΒ Β βΒ Β βββ libnotify-ccbd2c9fa44f14ee.rmeta
βΒ Β βΒ Β βββ libnumber_prefix-3ebe005462406dc0.rlib
βΒ Β βΒ Β βββ libnumber_prefix-3ebe005462406dc0.rmeta
βΒ Β βΒ Β βββ libportable_atomic-a1cb6be183ff64ca.rlib
βΒ Β βΒ Β βββ libportable_atomic-a1cb6be183ff64ca.rmeta
βΒ Β βΒ Β βββ libproc_macro2-42d5e56e18539f61.rlib
βΒ Β βΒ Β βββ libproc_macro2-42d5e56e18539f61.rmeta
βΒ Β βΒ Β βββ libquote-cf1b0d624952025a.rlib
βΒ Β βΒ Β βββ libquote-cf1b0d624952025a.rmeta
βΒ Β βΒ Β βββ libregex-6f2bede5d0b06e23.rlib
βΒ Β βΒ Β βββ libregex-6f2bede5d0b06e23.rmeta
βΒ Β βΒ Β βββ libregex_syntax-5fb1cd753e21b1f1.rlib
βΒ Β βΒ Β βββ libregex_syntax-5fb1cd753e21b1f1.rmeta
βΒ Β βΒ Β βββ libryu-62d671ac47bc7e87.rlib
βΒ Β βΒ Β βββ libryu-62d671ac47bc7e87.rmeta
βΒ Β βΒ Β βββ libsame_file-9bf1eaa85ad1aa05.rlib
βΒ Β βΒ Β βββ libsame_file-9bf1eaa85ad1aa05.rmeta
βΒ Β βΒ Β βββ libserde-12d4a95e4eb2c629.rlib
βΒ Β βΒ Β βββ libserde-12d4a95e4eb2c629.rmeta
βΒ Β βΒ Β βββ libserde_derive-502321eca877b28f.so
βΒ Β βΒ Β βββ libserde_json-2a6a9657b1189bf8.rlib
βΒ Β βΒ Β βββ libserde_json-2a6a9657b1189bf8.rmeta
βΒ Β βΒ Β βββ libserde_spanned-1aa3f99ba50200cc.rlib
βΒ Β βΒ Β βββ libserde_spanned-1aa3f99ba50200cc.rmeta
βΒ Β βΒ Β βββ libslab-167b61c8873b5898.rlib
βΒ Β βΒ Β βββ libslab-167b61c8873b5898.rmeta
βΒ Β βΒ Β βββ libstrsim-9db86cfcff58645e.rlib
βΒ Β βΒ Β βββ libstrsim-9db86cfcff58645e.rmeta
βΒ Β βΒ Β βββ libsyn-2e3a064a7fc2ef46.rlib
βΒ Β βΒ Β βββ libsyn-2e3a064a7fc2ef46.rmeta
βΒ Β βΒ Β βββ libtoml-3e7ada6e5eb54b87.rlib
βΒ Β βΒ Β βββ libtoml-3e7ada6e5eb54b87.rmeta
βΒ Β βΒ Β βββ libtoml_datetime-1e8c63529cd67bce.rlib
βΒ Β βΒ Β βββ libtoml_datetime-1e8c63529cd67bce.rmeta
βΒ Β βΒ Β βββ libtoml_edit-c44867638b852d4f.rlib
βΒ Β βΒ Β βββ libtoml_edit-c44867638b852d4f.rmeta
βΒ Β βΒ Β βββ libunicode_ident-8e941f04cb61c5a0.rlib
βΒ Β βΒ Β βββ libunicode_ident-8e941f04cb61c5a0.rmeta
βΒ Β βΒ Β βββ libunicode_width-23769a1791f03f14.rlib
βΒ Β βΒ Β βββ libunicode_width-23769a1791f03f14.rmeta
βΒ Β βΒ Β βββ libutf8parse-12769b3a5f1af50c.rlib
βΒ Β βΒ Β βββ libutf8parse-12769b3a5f1af50c.rmeta
βΒ Β βΒ Β βββ libwalkdir-2ac8e2aa58550628.rlib
βΒ Β βΒ Β βββ libwalkdir-2ac8e2aa58550628.rmeta
βΒ Β βΒ Β βββ libwinnow-5dc301566856e0ab.rlib
βΒ Β βΒ Β βββ libwinnow-5dc301566856e0ab.rmeta
βΒ Β βΒ Β βββ log-71eb742e7d074743.d
βΒ Β βΒ Β βββ memchr-3381c97883e9e6cb.d
βΒ Β βΒ Β βββ mio-d8e4c3bf5345ab4a.d
βΒ Β βΒ Β βββ mio_extras-f40585c6e3cffe91.d
βΒ Β βΒ Β βββ net2-e5debbf2235aabd4.d
βΒ Β βΒ Β βββ notify-ccbd2c9fa44f14ee.d
βΒ Β βΒ Β βββ number_prefix-3ebe005462406dc0.d
βΒ Β βΒ Β βββ portable_atomic-a1cb6be183ff64ca.d
βΒ Β βΒ Β βββ proc_macro2-42d5e56e18539f61.d
βΒ Β βΒ Β βββ quote-cf1b0d624952025a.d
βΒ Β βΒ Β βββ regex-6f2bede5d0b06e23.d
βΒ Β βΒ Β βββ regex_syntax-5fb1cd753e21b1f1.d
βΒ Β βΒ Β βββ rustlings-a082df77458a5a4a
βΒ Β βΒ Β βββ rustlings-a082df77458a5a4a.d
βΒ Β βΒ Β βββ ryu-62d671ac47bc7e87.d
βΒ Β βΒ Β βββ same_file-9bf1eaa85ad1aa05.d
βΒ Β βΒ Β βββ serde-12d4a95e4eb2c629.d
βΒ Β βΒ Β βββ serde_derive-502321eca877b28f.d
βΒ Β βΒ Β βββ serde_json-2a6a9657b1189bf8.d
βΒ Β βΒ Β βββ serde_spanned-1aa3f99ba50200cc.d
βΒ Β βΒ Β βββ slab-167b61c8873b5898.d
βΒ Β βΒ Β βββ strsim-9db86cfcff58645e.d
βΒ Β βΒ Β βββ syn-2e3a064a7fc2ef46.d
βΒ Β βΒ Β βββ toml-3e7ada6e5eb54b87.d
βΒ Β βΒ Β βββ toml_datetime-1e8c63529cd67bce.d
βΒ Β βΒ Β βββ toml_edit-c44867638b852d4f.d
βΒ Β βΒ Β βββ unicode_ident-8e941f04cb61c5a0.d
βΒ Β βΒ Β βββ unicode_width-23769a1791f03f14.d
βΒ Β βΒ Β βββ utf8parse-12769b3a5f1af50c.d
βΒ Β βΒ Β βββ walkdir-2ac8e2aa58550628.d
βΒ Β βΒ Β βββ winnow-5dc301566856e0ab.d
βΒ Β βββ examples
βΒ Β βββ incremental
βΒ Β βββ rustlings
βΒ Β βββ rustlings.d
βββ tests
βββ fixture
βΒ Β βββ failure
βΒ Β βΒ Β βββ compFailure.rs
βΒ Β βΒ Β βββ compNoExercise.rs
βΒ Β βΒ Β βββ info.toml
βΒ Β βΒ Β βββ testFailure.rs
βΒ Β βΒ Β βββ testNotPassed.rs
βΒ Β βββ state
βΒ Β βΒ Β βββ finished_exercise.rs
βΒ Β βΒ Β βββ info.toml
βΒ Β βΒ Β βββ pending_exercise.rs
βΒ Β βΒ Β βββ pending_test_exercise.rs
βΒ Β βββ success
βΒ Β βββ compSuccess.rs
βΒ Β βββ info.toml
βΒ Β βββ testSuccess.rs
βββ integration_tests.rs
64 directories, 398 files
Now you can run cd rustlings to be transported straight to the folder containing the exercises at ./exercises . These are ordered in the Readme following the Book on Rust, so letβs do the intro, follow the recommended route, and start learning Rust.
$ cat rustlings/exercises/README.md
# Exercise to Book Chapter mapping
| Exercise | Book Chapter |
| ---------------------- | ------------------- |
| variables | Β§3.1 |
| functions | Β§3.3 |
| if | Β§3.5 |
| primitive_types | Β§3.2, Β§4.3 |
| vecs | Β§8.1 |
| move_semantics | Β§4.1-2 |
| structs | Β§5.1, Β§5.3 |
| enums | Β§6, Β§18.3 |
| strings | Β§8.2 |
| modules | Β§7 |
| hashmaps | Β§8.3 |
| options | Β§10.1 |
| error_handling | Β§9 |
| generics | Β§10 |
| traits | Β§10.2 |
| tests | Β§11.1 |
| lifetimes | Β§10.3 |
| iterators | Β§13.2-4 |
| threads | Β§16.1-3 |
| smart_pointers | Β§15, Β§16.3 |
| macros | Β§19.6 |
| clippy | Β§21.4 |
| conversions | n/a |
$ cd rustlings/
alexlai@h2Jammy:~/rustlings$ rustlings
welcome to...
_ _ _
_ __ _ _ ___| |_| (_)_ __ __ _ ___
| '__| | | / __| __| | | '_ \ / _` / __|
| | | |_| \__ \ |_| | | | | | (_| \__ \
|_| \__,_|___/\__|_|_|_| |_|\__, |___/
|___/
Thanks for installing Rustlings!
Is this your first time? Don't worry, Rustlings was made for beginners! We are
going to teach you a lot of things about Rust, but before we can get
started, here's a couple of notes about how Rustlings operates:
1. The central concept behind Rustlings is that you solve exercises. These
exercises usually have some sort of syntax error in them, which will cause
them to fail compilation or testing. Sometimes there's a logic error instead
of a syntax error. No matter what error, it's your job to find it and fix it!
You'll know when you fixed it because then, the exercise will compile and
Rustlings will be able to move on to the next exercise.
2. If you run Rustlings in watch mode (which we recommend), it'll automatically
start with the first exercise. Don't get confused by an error message popping
up as soon as you run Rustlings! This is part of the exercise that you're
supposed to solve, so open the exercise file in an editor and start your
detective work!
3. If you're stuck on an exercise, there is a helpful hint you can view by typing
'hint' (in watch mode), or running `rustlings hint exercise_name`.
4. If an exercise doesn't make sense to you, feel free to open an issue on GitHub!
(https://github.com/rust-lang/rustlings/issues/new). We look at every issue,
and sometimes, other learners do too so you can help each other out!
5. If you want to use `rust-analyzer` with exercises, which provides features like
autocompletion, run the command `rustlings lsp`.
Got all that? Great! To get started, run `rustlings watch` in order to get the first
exercise. Make sure to have your editor open!
Return to Top