From 64d95837e9813541cf5b357de13865ce687ae98d Mon Sep 17 00:00:00 2001 From: Adam Brewer Date: Mon, 16 Oct 2023 07:37:12 -0400 Subject: [PATCH] Update Exercises Directory Names to Reflect Order --- exercises/{intro => 00_intro}/README.md | 0 exercises/{intro => 00_intro}/intro1.rs | 2 +- exercises/{intro => 00_intro}/intro2.rs | 0 .../{variables => 01_variables}/README.md | 0 .../{variables => 01_variables}/variables1.rs | 0 .../{variables => 01_variables}/variables2.rs | 0 .../{variables => 01_variables}/variables3.rs | 0 .../{variables => 01_variables}/variables4.rs | 0 .../{variables => 01_variables}/variables5.rs | 0 .../{variables => 01_variables}/variables6.rs | 0 .../{functions => 02_functions}/README.md | 0 .../{functions => 02_functions}/functions1.rs | 0 .../{functions => 02_functions}/functions2.rs | 0 .../{functions => 02_functions}/functions3.rs | 0 .../{functions => 02_functions}/functions4.rs | 0 .../{functions => 02_functions}/functions5.rs | 0 exercises/{if => 03_if}/README.md | 0 exercises/{if => 03_if}/if1.rs | 0 exercises/{if => 03_if}/if2.rs | 0 exercises/{if => 03_if}/if3.rs | 0 .../README.md | 0 .../primitive_types1.rs | 0 .../primitive_types2.rs | 0 .../primitive_types3.rs | 0 .../primitive_types4.rs | 0 .../primitive_types5.rs | 0 .../primitive_types6.rs | 0 exercises/{vecs => 05_vecs}/README.md | 0 exercises/{vecs => 05_vecs}/vecs1.rs | 0 exercises/{vecs => 05_vecs}/vecs2.rs | 0 .../README.md | 0 .../move_semantics1.rs | 0 .../move_semantics2.rs | 0 .../move_semantics3.rs | 0 .../move_semantics4.rs | 0 .../move_semantics5.rs | 0 .../move_semantics6.rs | 0 exercises/{structs => 07_structs}/README.md | 0 exercises/{structs => 07_structs}/structs1.rs | 0 exercises/{structs => 07_structs}/structs2.rs | 0 exercises/{structs => 07_structs}/structs3.rs | 0 exercises/{enums => 08_enums}/README.md | 0 exercises/{enums => 08_enums}/enums1.rs | 0 exercises/{enums => 08_enums}/enums2.rs | 0 exercises/{enums => 08_enums}/enums3.rs | 0 exercises/{strings => 09_strings}/README.md | 0 exercises/{strings => 09_strings}/strings1.rs | 0 exercises/{strings => 09_strings}/strings2.rs | 0 exercises/{strings => 09_strings}/strings3.rs | 0 exercises/{strings => 09_strings}/strings4.rs | 0 exercises/{modules => 10_modules}/README.md | 0 exercises/{modules => 10_modules}/modules1.rs | 0 exercises/{modules => 10_modules}/modules2.rs | 0 exercises/{modules => 10_modules}/modules3.rs | 0 exercises/{hashmaps => 11_hashmaps}/README.md | 0 .../{hashmaps => 11_hashmaps}/hashmaps1.rs | 0 .../{hashmaps => 11_hashmaps}/hashmaps2.rs | 0 .../{hashmaps => 11_hashmaps}/hashmaps3.rs | 0 exercises/{options => 12_options}/README.md | 0 exercises/{options => 12_options}/options1.rs | 0 exercises/{options => 12_options}/options2.rs | 0 exercises/{options => 12_options}/options3.rs | 0 .../README.md | 0 .../errors1.rs | 0 .../errors2.rs | 0 .../errors3.rs | 0 .../errors4.rs | 0 .../errors5.rs | 0 .../errors6.rs | 0 exercises/{generics => 14_generics}/README.md | 0 .../{generics => 14_generics}/generics1.rs | 0 .../{generics => 14_generics}/generics2.rs | 0 exercises/{traits => 15_traits}/README.md | 0 exercises/{traits => 15_traits}/traits1.rs | 0 exercises/{traits => 15_traits}/traits2.rs | 0 exercises/{traits => 15_traits}/traits3.rs | 0 exercises/{traits => 15_traits}/traits4.rs | 0 exercises/{traits => 15_traits}/traits5.rs | 0 .../{lifetimes => 16_lifetimes}/README.md | 0 .../{lifetimes => 16_lifetimes}/lifetimes1.rs | 0 .../{lifetimes => 16_lifetimes}/lifetimes2.rs | 0 .../{lifetimes => 16_lifetimes}/lifetimes3.rs | 0 exercises/{tests => 17_tests}/README.md | 0 exercises/{tests => 17_tests}/tests1.rs | 0 exercises/{tests => 17_tests}/tests2.rs | 0 exercises/{tests => 17_tests}/tests3.rs | 0 exercises/{tests => 17_tests}/tests4.rs | 0 .../{iterators => 18_iterators}/README.md | 0 .../{iterators => 18_iterators}/iterators1.rs | 0 .../{iterators => 18_iterators}/iterators2.rs | 0 .../{iterators => 18_iterators}/iterators3.rs | 0 .../{iterators => 18_iterators}/iterators4.rs | 0 .../{iterators => 18_iterators}/iterators5.rs | 0 .../README.md | 0 .../arc1.rs | 0 .../box1.rs | 0 .../cow1.rs | 0 .../rc1.rs | 0 exercises/{threads => 20_threads}/README.md | 0 exercises/{threads => 20_threads}/threads1.rs | 0 exercises/{threads => 20_threads}/threads2.rs | 0 exercises/{threads => 20_threads}/threads3.rs | 0 exercises/{macros => 21_macros}/README.md | 0 exercises/{macros => 21_macros}/macros1.rs | 0 exercises/{macros => 21_macros}/macros2.rs | 0 exercises/{macros => 21_macros}/macros3.rs | 0 exercises/{macros => 21_macros}/macros4.rs | 0 exercises/{clippy => 22_clippy}/README.md | 0 exercises/{clippy => 22_clippy}/clippy1.rs | 0 exercises/{clippy => 22_clippy}/clippy2.rs | 0 exercises/{clippy => 22_clippy}/clippy3.rs | 0 .../{conversions => 23_conversions}/README.md | 0 .../as_ref_mut.rs | 0 .../from_into.rs | 0 .../from_str.rs | 0 .../try_from_into.rs | 0 .../using_as.rs | 0 info.toml | 188 +++++++++--------- 118 files changed, 95 insertions(+), 95 deletions(-) rename exercises/{intro => 00_intro}/README.md (100%) rename exercises/{intro => 00_intro}/intro1.rs (98%) rename exercises/{intro => 00_intro}/intro2.rs (100%) rename exercises/{variables => 01_variables}/README.md (100%) rename exercises/{variables => 01_variables}/variables1.rs (100%) rename exercises/{variables => 01_variables}/variables2.rs (100%) rename exercises/{variables => 01_variables}/variables3.rs (100%) rename exercises/{variables => 01_variables}/variables4.rs (100%) rename exercises/{variables => 01_variables}/variables5.rs (100%) rename exercises/{variables => 01_variables}/variables6.rs (100%) rename exercises/{functions => 02_functions}/README.md (100%) rename exercises/{functions => 02_functions}/functions1.rs (100%) rename exercises/{functions => 02_functions}/functions2.rs (100%) rename exercises/{functions => 02_functions}/functions3.rs (100%) rename exercises/{functions => 02_functions}/functions4.rs (100%) rename exercises/{functions => 02_functions}/functions5.rs (100%) rename exercises/{if => 03_if}/README.md (100%) rename exercises/{if => 03_if}/if1.rs (100%) rename exercises/{if => 03_if}/if2.rs (100%) rename exercises/{if => 03_if}/if3.rs (100%) rename exercises/{primitive_types => 04_primitive_types}/README.md (100%) rename exercises/{primitive_types => 04_primitive_types}/primitive_types1.rs (100%) rename exercises/{primitive_types => 04_primitive_types}/primitive_types2.rs (100%) rename exercises/{primitive_types => 04_primitive_types}/primitive_types3.rs (100%) rename exercises/{primitive_types => 04_primitive_types}/primitive_types4.rs (100%) rename exercises/{primitive_types => 04_primitive_types}/primitive_types5.rs (100%) rename exercises/{primitive_types => 04_primitive_types}/primitive_types6.rs (100%) rename exercises/{vecs => 05_vecs}/README.md (100%) rename exercises/{vecs => 05_vecs}/vecs1.rs (100%) rename exercises/{vecs => 05_vecs}/vecs2.rs (100%) rename exercises/{move_semantics => 06_move_semantics}/README.md (100%) rename exercises/{move_semantics => 06_move_semantics}/move_semantics1.rs (100%) rename exercises/{move_semantics => 06_move_semantics}/move_semantics2.rs (100%) rename exercises/{move_semantics => 06_move_semantics}/move_semantics3.rs (100%) rename exercises/{move_semantics => 06_move_semantics}/move_semantics4.rs (100%) rename exercises/{move_semantics => 06_move_semantics}/move_semantics5.rs (100%) rename exercises/{move_semantics => 06_move_semantics}/move_semantics6.rs (100%) rename exercises/{structs => 07_structs}/README.md (100%) rename exercises/{structs => 07_structs}/structs1.rs (100%) rename exercises/{structs => 07_structs}/structs2.rs (100%) rename exercises/{structs => 07_structs}/structs3.rs (100%) rename exercises/{enums => 08_enums}/README.md (100%) rename exercises/{enums => 08_enums}/enums1.rs (100%) rename exercises/{enums => 08_enums}/enums2.rs (100%) rename exercises/{enums => 08_enums}/enums3.rs (100%) rename exercises/{strings => 09_strings}/README.md (100%) rename exercises/{strings => 09_strings}/strings1.rs (100%) rename exercises/{strings => 09_strings}/strings2.rs (100%) rename exercises/{strings => 09_strings}/strings3.rs (100%) rename exercises/{strings => 09_strings}/strings4.rs (100%) rename exercises/{modules => 10_modules}/README.md (100%) rename exercises/{modules => 10_modules}/modules1.rs (100%) rename exercises/{modules => 10_modules}/modules2.rs (100%) rename exercises/{modules => 10_modules}/modules3.rs (100%) rename exercises/{hashmaps => 11_hashmaps}/README.md (100%) rename exercises/{hashmaps => 11_hashmaps}/hashmaps1.rs (100%) rename exercises/{hashmaps => 11_hashmaps}/hashmaps2.rs (100%) rename exercises/{hashmaps => 11_hashmaps}/hashmaps3.rs (100%) rename exercises/{options => 12_options}/README.md (100%) rename exercises/{options => 12_options}/options1.rs (100%) rename exercises/{options => 12_options}/options2.rs (100%) rename exercises/{options => 12_options}/options3.rs (100%) rename exercises/{error_handling => 13_error_handling}/README.md (100%) rename exercises/{error_handling => 13_error_handling}/errors1.rs (100%) rename exercises/{error_handling => 13_error_handling}/errors2.rs (100%) rename exercises/{error_handling => 13_error_handling}/errors3.rs (100%) rename exercises/{error_handling => 13_error_handling}/errors4.rs (100%) rename exercises/{error_handling => 13_error_handling}/errors5.rs (100%) rename exercises/{error_handling => 13_error_handling}/errors6.rs (100%) rename exercises/{generics => 14_generics}/README.md (100%) rename exercises/{generics => 14_generics}/generics1.rs (100%) rename exercises/{generics => 14_generics}/generics2.rs (100%) rename exercises/{traits => 15_traits}/README.md (100%) rename exercises/{traits => 15_traits}/traits1.rs (100%) rename exercises/{traits => 15_traits}/traits2.rs (100%) rename exercises/{traits => 15_traits}/traits3.rs (100%) rename exercises/{traits => 15_traits}/traits4.rs (100%) rename exercises/{traits => 15_traits}/traits5.rs (100%) rename exercises/{lifetimes => 16_lifetimes}/README.md (100%) rename exercises/{lifetimes => 16_lifetimes}/lifetimes1.rs (100%) rename exercises/{lifetimes => 16_lifetimes}/lifetimes2.rs (100%) rename exercises/{lifetimes => 16_lifetimes}/lifetimes3.rs (100%) rename exercises/{tests => 17_tests}/README.md (100%) rename exercises/{tests => 17_tests}/tests1.rs (100%) rename exercises/{tests => 17_tests}/tests2.rs (100%) rename exercises/{tests => 17_tests}/tests3.rs (100%) rename exercises/{tests => 17_tests}/tests4.rs (100%) rename exercises/{iterators => 18_iterators}/README.md (100%) rename exercises/{iterators => 18_iterators}/iterators1.rs (100%) rename exercises/{iterators => 18_iterators}/iterators2.rs (100%) rename exercises/{iterators => 18_iterators}/iterators3.rs (100%) rename exercises/{iterators => 18_iterators}/iterators4.rs (100%) rename exercises/{iterators => 18_iterators}/iterators5.rs (100%) rename exercises/{smart_pointers => 19_smart_pointers}/README.md (100%) rename exercises/{smart_pointers => 19_smart_pointers}/arc1.rs (100%) rename exercises/{smart_pointers => 19_smart_pointers}/box1.rs (100%) rename exercises/{smart_pointers => 19_smart_pointers}/cow1.rs (100%) rename exercises/{smart_pointers => 19_smart_pointers}/rc1.rs (100%) rename exercises/{threads => 20_threads}/README.md (100%) rename exercises/{threads => 20_threads}/threads1.rs (100%) rename exercises/{threads => 20_threads}/threads2.rs (100%) rename exercises/{threads => 20_threads}/threads3.rs (100%) rename exercises/{macros => 21_macros}/README.md (100%) rename exercises/{macros => 21_macros}/macros1.rs (100%) rename exercises/{macros => 21_macros}/macros2.rs (100%) rename exercises/{macros => 21_macros}/macros3.rs (100%) rename exercises/{macros => 21_macros}/macros4.rs (100%) rename exercises/{clippy => 22_clippy}/README.md (100%) rename exercises/{clippy => 22_clippy}/clippy1.rs (100%) rename exercises/{clippy => 22_clippy}/clippy2.rs (100%) rename exercises/{clippy => 22_clippy}/clippy3.rs (100%) rename exercises/{conversions => 23_conversions}/README.md (100%) rename exercises/{conversions => 23_conversions}/as_ref_mut.rs (100%) rename exercises/{conversions => 23_conversions}/from_into.rs (100%) rename exercises/{conversions => 23_conversions}/from_str.rs (100%) rename exercises/{conversions => 23_conversions}/try_from_into.rs (100%) rename exercises/{conversions => 23_conversions}/using_as.rs (100%) diff --git a/exercises/intro/README.md b/exercises/00_intro/README.md similarity index 100% rename from exercises/intro/README.md rename to exercises/00_intro/README.md diff --git a/exercises/intro/intro1.rs b/exercises/00_intro/intro1.rs similarity index 98% rename from exercises/intro/intro1.rs rename to exercises/00_intro/intro1.rs index 37fa0112..c5196d62 100644 --- a/exercises/intro/intro1.rs +++ b/exercises/00_intro/intro1.rs @@ -29,7 +29,7 @@ fn main() { println!("or logic error. The central concept behind Rustlings is to fix these errors and"); println!("solve the exercises. Good luck!"); println!(); - println!("The source for this exercise is in `exercises/intro/intro1.rs`. Have a look!"); + println!("The source for this exercise is in `exercises/intro00/intro1.rs`. Have a look!"); println!( "Going forward, the source of the exercises will always be in the success/failure output." ); diff --git a/exercises/intro/intro2.rs b/exercises/00_intro/intro2.rs similarity index 100% rename from exercises/intro/intro2.rs rename to exercises/00_intro/intro2.rs diff --git a/exercises/variables/README.md b/exercises/01_variables/README.md similarity index 100% rename from exercises/variables/README.md rename to exercises/01_variables/README.md diff --git a/exercises/variables/variables1.rs b/exercises/01_variables/variables1.rs similarity index 100% rename from exercises/variables/variables1.rs rename to exercises/01_variables/variables1.rs diff --git a/exercises/variables/variables2.rs b/exercises/01_variables/variables2.rs similarity index 100% rename from exercises/variables/variables2.rs rename to exercises/01_variables/variables2.rs diff --git a/exercises/variables/variables3.rs b/exercises/01_variables/variables3.rs similarity index 100% rename from exercises/variables/variables3.rs rename to exercises/01_variables/variables3.rs diff --git a/exercises/variables/variables4.rs b/exercises/01_variables/variables4.rs similarity index 100% rename from exercises/variables/variables4.rs rename to exercises/01_variables/variables4.rs diff --git a/exercises/variables/variables5.rs b/exercises/01_variables/variables5.rs similarity index 100% rename from exercises/variables/variables5.rs rename to exercises/01_variables/variables5.rs diff --git a/exercises/variables/variables6.rs b/exercises/01_variables/variables6.rs similarity index 100% rename from exercises/variables/variables6.rs rename to exercises/01_variables/variables6.rs diff --git a/exercises/functions/README.md b/exercises/02_functions/README.md similarity index 100% rename from exercises/functions/README.md rename to exercises/02_functions/README.md diff --git a/exercises/functions/functions1.rs b/exercises/02_functions/functions1.rs similarity index 100% rename from exercises/functions/functions1.rs rename to exercises/02_functions/functions1.rs diff --git a/exercises/functions/functions2.rs b/exercises/02_functions/functions2.rs similarity index 100% rename from exercises/functions/functions2.rs rename to exercises/02_functions/functions2.rs diff --git a/exercises/functions/functions3.rs b/exercises/02_functions/functions3.rs similarity index 100% rename from exercises/functions/functions3.rs rename to exercises/02_functions/functions3.rs diff --git a/exercises/functions/functions4.rs b/exercises/02_functions/functions4.rs similarity index 100% rename from exercises/functions/functions4.rs rename to exercises/02_functions/functions4.rs diff --git a/exercises/functions/functions5.rs b/exercises/02_functions/functions5.rs similarity index 100% rename from exercises/functions/functions5.rs rename to exercises/02_functions/functions5.rs diff --git a/exercises/if/README.md b/exercises/03_if/README.md similarity index 100% rename from exercises/if/README.md rename to exercises/03_if/README.md diff --git a/exercises/if/if1.rs b/exercises/03_if/if1.rs similarity index 100% rename from exercises/if/if1.rs rename to exercises/03_if/if1.rs diff --git a/exercises/if/if2.rs b/exercises/03_if/if2.rs similarity index 100% rename from exercises/if/if2.rs rename to exercises/03_if/if2.rs diff --git a/exercises/if/if3.rs b/exercises/03_if/if3.rs similarity index 100% rename from exercises/if/if3.rs rename to exercises/03_if/if3.rs diff --git a/exercises/primitive_types/README.md b/exercises/04_primitive_types/README.md similarity index 100% rename from exercises/primitive_types/README.md rename to exercises/04_primitive_types/README.md diff --git a/exercises/primitive_types/primitive_types1.rs b/exercises/04_primitive_types/primitive_types1.rs similarity index 100% rename from exercises/primitive_types/primitive_types1.rs rename to exercises/04_primitive_types/primitive_types1.rs diff --git a/exercises/primitive_types/primitive_types2.rs b/exercises/04_primitive_types/primitive_types2.rs similarity index 100% rename from exercises/primitive_types/primitive_types2.rs rename to exercises/04_primitive_types/primitive_types2.rs diff --git a/exercises/primitive_types/primitive_types3.rs b/exercises/04_primitive_types/primitive_types3.rs similarity index 100% rename from exercises/primitive_types/primitive_types3.rs rename to exercises/04_primitive_types/primitive_types3.rs diff --git a/exercises/primitive_types/primitive_types4.rs b/exercises/04_primitive_types/primitive_types4.rs similarity index 100% rename from exercises/primitive_types/primitive_types4.rs rename to exercises/04_primitive_types/primitive_types4.rs diff --git a/exercises/primitive_types/primitive_types5.rs b/exercises/04_primitive_types/primitive_types5.rs similarity index 100% rename from exercises/primitive_types/primitive_types5.rs rename to exercises/04_primitive_types/primitive_types5.rs diff --git a/exercises/primitive_types/primitive_types6.rs b/exercises/04_primitive_types/primitive_types6.rs similarity index 100% rename from exercises/primitive_types/primitive_types6.rs rename to exercises/04_primitive_types/primitive_types6.rs diff --git a/exercises/vecs/README.md b/exercises/05_vecs/README.md similarity index 100% rename from exercises/vecs/README.md rename to exercises/05_vecs/README.md diff --git a/exercises/vecs/vecs1.rs b/exercises/05_vecs/vecs1.rs similarity index 100% rename from exercises/vecs/vecs1.rs rename to exercises/05_vecs/vecs1.rs diff --git a/exercises/vecs/vecs2.rs b/exercises/05_vecs/vecs2.rs similarity index 100% rename from exercises/vecs/vecs2.rs rename to exercises/05_vecs/vecs2.rs diff --git a/exercises/move_semantics/README.md b/exercises/06_move_semantics/README.md similarity index 100% rename from exercises/move_semantics/README.md rename to exercises/06_move_semantics/README.md diff --git a/exercises/move_semantics/move_semantics1.rs b/exercises/06_move_semantics/move_semantics1.rs similarity index 100% rename from exercises/move_semantics/move_semantics1.rs rename to exercises/06_move_semantics/move_semantics1.rs diff --git a/exercises/move_semantics/move_semantics2.rs b/exercises/06_move_semantics/move_semantics2.rs similarity index 100% rename from exercises/move_semantics/move_semantics2.rs rename to exercises/06_move_semantics/move_semantics2.rs diff --git a/exercises/move_semantics/move_semantics3.rs b/exercises/06_move_semantics/move_semantics3.rs similarity index 100% rename from exercises/move_semantics/move_semantics3.rs rename to exercises/06_move_semantics/move_semantics3.rs diff --git a/exercises/move_semantics/move_semantics4.rs b/exercises/06_move_semantics/move_semantics4.rs similarity index 100% rename from exercises/move_semantics/move_semantics4.rs rename to exercises/06_move_semantics/move_semantics4.rs diff --git a/exercises/move_semantics/move_semantics5.rs b/exercises/06_move_semantics/move_semantics5.rs similarity index 100% rename from exercises/move_semantics/move_semantics5.rs rename to exercises/06_move_semantics/move_semantics5.rs diff --git a/exercises/move_semantics/move_semantics6.rs b/exercises/06_move_semantics/move_semantics6.rs similarity index 100% rename from exercises/move_semantics/move_semantics6.rs rename to exercises/06_move_semantics/move_semantics6.rs diff --git a/exercises/structs/README.md b/exercises/07_structs/README.md similarity index 100% rename from exercises/structs/README.md rename to exercises/07_structs/README.md diff --git a/exercises/structs/structs1.rs b/exercises/07_structs/structs1.rs similarity index 100% rename from exercises/structs/structs1.rs rename to exercises/07_structs/structs1.rs diff --git a/exercises/structs/structs2.rs b/exercises/07_structs/structs2.rs similarity index 100% rename from exercises/structs/structs2.rs rename to exercises/07_structs/structs2.rs diff --git a/exercises/structs/structs3.rs b/exercises/07_structs/structs3.rs similarity index 100% rename from exercises/structs/structs3.rs rename to exercises/07_structs/structs3.rs diff --git a/exercises/enums/README.md b/exercises/08_enums/README.md similarity index 100% rename from exercises/enums/README.md rename to exercises/08_enums/README.md diff --git a/exercises/enums/enums1.rs b/exercises/08_enums/enums1.rs similarity index 100% rename from exercises/enums/enums1.rs rename to exercises/08_enums/enums1.rs diff --git a/exercises/enums/enums2.rs b/exercises/08_enums/enums2.rs similarity index 100% rename from exercises/enums/enums2.rs rename to exercises/08_enums/enums2.rs diff --git a/exercises/enums/enums3.rs b/exercises/08_enums/enums3.rs similarity index 100% rename from exercises/enums/enums3.rs rename to exercises/08_enums/enums3.rs diff --git a/exercises/strings/README.md b/exercises/09_strings/README.md similarity index 100% rename from exercises/strings/README.md rename to exercises/09_strings/README.md diff --git a/exercises/strings/strings1.rs b/exercises/09_strings/strings1.rs similarity index 100% rename from exercises/strings/strings1.rs rename to exercises/09_strings/strings1.rs diff --git a/exercises/strings/strings2.rs b/exercises/09_strings/strings2.rs similarity index 100% rename from exercises/strings/strings2.rs rename to exercises/09_strings/strings2.rs diff --git a/exercises/strings/strings3.rs b/exercises/09_strings/strings3.rs similarity index 100% rename from exercises/strings/strings3.rs rename to exercises/09_strings/strings3.rs diff --git a/exercises/strings/strings4.rs b/exercises/09_strings/strings4.rs similarity index 100% rename from exercises/strings/strings4.rs rename to exercises/09_strings/strings4.rs diff --git a/exercises/modules/README.md b/exercises/10_modules/README.md similarity index 100% rename from exercises/modules/README.md rename to exercises/10_modules/README.md diff --git a/exercises/modules/modules1.rs b/exercises/10_modules/modules1.rs similarity index 100% rename from exercises/modules/modules1.rs rename to exercises/10_modules/modules1.rs diff --git a/exercises/modules/modules2.rs b/exercises/10_modules/modules2.rs similarity index 100% rename from exercises/modules/modules2.rs rename to exercises/10_modules/modules2.rs diff --git a/exercises/modules/modules3.rs b/exercises/10_modules/modules3.rs similarity index 100% rename from exercises/modules/modules3.rs rename to exercises/10_modules/modules3.rs diff --git a/exercises/hashmaps/README.md b/exercises/11_hashmaps/README.md similarity index 100% rename from exercises/hashmaps/README.md rename to exercises/11_hashmaps/README.md diff --git a/exercises/hashmaps/hashmaps1.rs b/exercises/11_hashmaps/hashmaps1.rs similarity index 100% rename from exercises/hashmaps/hashmaps1.rs rename to exercises/11_hashmaps/hashmaps1.rs diff --git a/exercises/hashmaps/hashmaps2.rs b/exercises/11_hashmaps/hashmaps2.rs similarity index 100% rename from exercises/hashmaps/hashmaps2.rs rename to exercises/11_hashmaps/hashmaps2.rs diff --git a/exercises/hashmaps/hashmaps3.rs b/exercises/11_hashmaps/hashmaps3.rs similarity index 100% rename from exercises/hashmaps/hashmaps3.rs rename to exercises/11_hashmaps/hashmaps3.rs diff --git a/exercises/options/README.md b/exercises/12_options/README.md similarity index 100% rename from exercises/options/README.md rename to exercises/12_options/README.md diff --git a/exercises/options/options1.rs b/exercises/12_options/options1.rs similarity index 100% rename from exercises/options/options1.rs rename to exercises/12_options/options1.rs diff --git a/exercises/options/options2.rs b/exercises/12_options/options2.rs similarity index 100% rename from exercises/options/options2.rs rename to exercises/12_options/options2.rs diff --git a/exercises/options/options3.rs b/exercises/12_options/options3.rs similarity index 100% rename from exercises/options/options3.rs rename to exercises/12_options/options3.rs diff --git a/exercises/error_handling/README.md b/exercises/13_error_handling/README.md similarity index 100% rename from exercises/error_handling/README.md rename to exercises/13_error_handling/README.md diff --git a/exercises/error_handling/errors1.rs b/exercises/13_error_handling/errors1.rs similarity index 100% rename from exercises/error_handling/errors1.rs rename to exercises/13_error_handling/errors1.rs diff --git a/exercises/error_handling/errors2.rs b/exercises/13_error_handling/errors2.rs similarity index 100% rename from exercises/error_handling/errors2.rs rename to exercises/13_error_handling/errors2.rs diff --git a/exercises/error_handling/errors3.rs b/exercises/13_error_handling/errors3.rs similarity index 100% rename from exercises/error_handling/errors3.rs rename to exercises/13_error_handling/errors3.rs diff --git a/exercises/error_handling/errors4.rs b/exercises/13_error_handling/errors4.rs similarity index 100% rename from exercises/error_handling/errors4.rs rename to exercises/13_error_handling/errors4.rs diff --git a/exercises/error_handling/errors5.rs b/exercises/13_error_handling/errors5.rs similarity index 100% rename from exercises/error_handling/errors5.rs rename to exercises/13_error_handling/errors5.rs diff --git a/exercises/error_handling/errors6.rs b/exercises/13_error_handling/errors6.rs similarity index 100% rename from exercises/error_handling/errors6.rs rename to exercises/13_error_handling/errors6.rs diff --git a/exercises/generics/README.md b/exercises/14_generics/README.md similarity index 100% rename from exercises/generics/README.md rename to exercises/14_generics/README.md diff --git a/exercises/generics/generics1.rs b/exercises/14_generics/generics1.rs similarity index 100% rename from exercises/generics/generics1.rs rename to exercises/14_generics/generics1.rs diff --git a/exercises/generics/generics2.rs b/exercises/14_generics/generics2.rs similarity index 100% rename from exercises/generics/generics2.rs rename to exercises/14_generics/generics2.rs diff --git a/exercises/traits/README.md b/exercises/15_traits/README.md similarity index 100% rename from exercises/traits/README.md rename to exercises/15_traits/README.md diff --git a/exercises/traits/traits1.rs b/exercises/15_traits/traits1.rs similarity index 100% rename from exercises/traits/traits1.rs rename to exercises/15_traits/traits1.rs diff --git a/exercises/traits/traits2.rs b/exercises/15_traits/traits2.rs similarity index 100% rename from exercises/traits/traits2.rs rename to exercises/15_traits/traits2.rs diff --git a/exercises/traits/traits3.rs b/exercises/15_traits/traits3.rs similarity index 100% rename from exercises/traits/traits3.rs rename to exercises/15_traits/traits3.rs diff --git a/exercises/traits/traits4.rs b/exercises/15_traits/traits4.rs similarity index 100% rename from exercises/traits/traits4.rs rename to exercises/15_traits/traits4.rs diff --git a/exercises/traits/traits5.rs b/exercises/15_traits/traits5.rs similarity index 100% rename from exercises/traits/traits5.rs rename to exercises/15_traits/traits5.rs diff --git a/exercises/lifetimes/README.md b/exercises/16_lifetimes/README.md similarity index 100% rename from exercises/lifetimes/README.md rename to exercises/16_lifetimes/README.md diff --git a/exercises/lifetimes/lifetimes1.rs b/exercises/16_lifetimes/lifetimes1.rs similarity index 100% rename from exercises/lifetimes/lifetimes1.rs rename to exercises/16_lifetimes/lifetimes1.rs diff --git a/exercises/lifetimes/lifetimes2.rs b/exercises/16_lifetimes/lifetimes2.rs similarity index 100% rename from exercises/lifetimes/lifetimes2.rs rename to exercises/16_lifetimes/lifetimes2.rs diff --git a/exercises/lifetimes/lifetimes3.rs b/exercises/16_lifetimes/lifetimes3.rs similarity index 100% rename from exercises/lifetimes/lifetimes3.rs rename to exercises/16_lifetimes/lifetimes3.rs diff --git a/exercises/tests/README.md b/exercises/17_tests/README.md similarity index 100% rename from exercises/tests/README.md rename to exercises/17_tests/README.md diff --git a/exercises/tests/tests1.rs b/exercises/17_tests/tests1.rs similarity index 100% rename from exercises/tests/tests1.rs rename to exercises/17_tests/tests1.rs diff --git a/exercises/tests/tests2.rs b/exercises/17_tests/tests2.rs similarity index 100% rename from exercises/tests/tests2.rs rename to exercises/17_tests/tests2.rs diff --git a/exercises/tests/tests3.rs b/exercises/17_tests/tests3.rs similarity index 100% rename from exercises/tests/tests3.rs rename to exercises/17_tests/tests3.rs diff --git a/exercises/tests/tests4.rs b/exercises/17_tests/tests4.rs similarity index 100% rename from exercises/tests/tests4.rs rename to exercises/17_tests/tests4.rs diff --git a/exercises/iterators/README.md b/exercises/18_iterators/README.md similarity index 100% rename from exercises/iterators/README.md rename to exercises/18_iterators/README.md diff --git a/exercises/iterators/iterators1.rs b/exercises/18_iterators/iterators1.rs similarity index 100% rename from exercises/iterators/iterators1.rs rename to exercises/18_iterators/iterators1.rs diff --git a/exercises/iterators/iterators2.rs b/exercises/18_iterators/iterators2.rs similarity index 100% rename from exercises/iterators/iterators2.rs rename to exercises/18_iterators/iterators2.rs diff --git a/exercises/iterators/iterators3.rs b/exercises/18_iterators/iterators3.rs similarity index 100% rename from exercises/iterators/iterators3.rs rename to exercises/18_iterators/iterators3.rs diff --git a/exercises/iterators/iterators4.rs b/exercises/18_iterators/iterators4.rs similarity index 100% rename from exercises/iterators/iterators4.rs rename to exercises/18_iterators/iterators4.rs diff --git a/exercises/iterators/iterators5.rs b/exercises/18_iterators/iterators5.rs similarity index 100% rename from exercises/iterators/iterators5.rs rename to exercises/18_iterators/iterators5.rs diff --git a/exercises/smart_pointers/README.md b/exercises/19_smart_pointers/README.md similarity index 100% rename from exercises/smart_pointers/README.md rename to exercises/19_smart_pointers/README.md diff --git a/exercises/smart_pointers/arc1.rs b/exercises/19_smart_pointers/arc1.rs similarity index 100% rename from exercises/smart_pointers/arc1.rs rename to exercises/19_smart_pointers/arc1.rs diff --git a/exercises/smart_pointers/box1.rs b/exercises/19_smart_pointers/box1.rs similarity index 100% rename from exercises/smart_pointers/box1.rs rename to exercises/19_smart_pointers/box1.rs diff --git a/exercises/smart_pointers/cow1.rs b/exercises/19_smart_pointers/cow1.rs similarity index 100% rename from exercises/smart_pointers/cow1.rs rename to exercises/19_smart_pointers/cow1.rs diff --git a/exercises/smart_pointers/rc1.rs b/exercises/19_smart_pointers/rc1.rs similarity index 100% rename from exercises/smart_pointers/rc1.rs rename to exercises/19_smart_pointers/rc1.rs diff --git a/exercises/threads/README.md b/exercises/20_threads/README.md similarity index 100% rename from exercises/threads/README.md rename to exercises/20_threads/README.md diff --git a/exercises/threads/threads1.rs b/exercises/20_threads/threads1.rs similarity index 100% rename from exercises/threads/threads1.rs rename to exercises/20_threads/threads1.rs diff --git a/exercises/threads/threads2.rs b/exercises/20_threads/threads2.rs similarity index 100% rename from exercises/threads/threads2.rs rename to exercises/20_threads/threads2.rs diff --git a/exercises/threads/threads3.rs b/exercises/20_threads/threads3.rs similarity index 100% rename from exercises/threads/threads3.rs rename to exercises/20_threads/threads3.rs diff --git a/exercises/macros/README.md b/exercises/21_macros/README.md similarity index 100% rename from exercises/macros/README.md rename to exercises/21_macros/README.md diff --git a/exercises/macros/macros1.rs b/exercises/21_macros/macros1.rs similarity index 100% rename from exercises/macros/macros1.rs rename to exercises/21_macros/macros1.rs diff --git a/exercises/macros/macros2.rs b/exercises/21_macros/macros2.rs similarity index 100% rename from exercises/macros/macros2.rs rename to exercises/21_macros/macros2.rs diff --git a/exercises/macros/macros3.rs b/exercises/21_macros/macros3.rs similarity index 100% rename from exercises/macros/macros3.rs rename to exercises/21_macros/macros3.rs diff --git a/exercises/macros/macros4.rs b/exercises/21_macros/macros4.rs similarity index 100% rename from exercises/macros/macros4.rs rename to exercises/21_macros/macros4.rs diff --git a/exercises/clippy/README.md b/exercises/22_clippy/README.md similarity index 100% rename from exercises/clippy/README.md rename to exercises/22_clippy/README.md diff --git a/exercises/clippy/clippy1.rs b/exercises/22_clippy/clippy1.rs similarity index 100% rename from exercises/clippy/clippy1.rs rename to exercises/22_clippy/clippy1.rs diff --git a/exercises/clippy/clippy2.rs b/exercises/22_clippy/clippy2.rs similarity index 100% rename from exercises/clippy/clippy2.rs rename to exercises/22_clippy/clippy2.rs diff --git a/exercises/clippy/clippy3.rs b/exercises/22_clippy/clippy3.rs similarity index 100% rename from exercises/clippy/clippy3.rs rename to exercises/22_clippy/clippy3.rs diff --git a/exercises/conversions/README.md b/exercises/23_conversions/README.md similarity index 100% rename from exercises/conversions/README.md rename to exercises/23_conversions/README.md diff --git a/exercises/conversions/as_ref_mut.rs b/exercises/23_conversions/as_ref_mut.rs similarity index 100% rename from exercises/conversions/as_ref_mut.rs rename to exercises/23_conversions/as_ref_mut.rs diff --git a/exercises/conversions/from_into.rs b/exercises/23_conversions/from_into.rs similarity index 100% rename from exercises/conversions/from_into.rs rename to exercises/23_conversions/from_into.rs diff --git a/exercises/conversions/from_str.rs b/exercises/23_conversions/from_str.rs similarity index 100% rename from exercises/conversions/from_str.rs rename to exercises/23_conversions/from_str.rs diff --git a/exercises/conversions/try_from_into.rs b/exercises/23_conversions/try_from_into.rs similarity index 100% rename from exercises/conversions/try_from_into.rs rename to exercises/23_conversions/try_from_into.rs diff --git a/exercises/conversions/using_as.rs b/exercises/23_conversions/using_as.rs similarity index 100% rename from exercises/conversions/using_as.rs rename to exercises/23_conversions/using_as.rs diff --git a/info.toml b/info.toml index 02599fc5..bbfee142 100644 --- a/info.toml +++ b/info.toml @@ -2,15 +2,15 @@ [[exercises]] name = "intro1" -path = "exercises/intro/intro1.rs" +path = "exercises/00_intro/intro1.rs" mode = "compile" hint = """ -Remove the `I AM NOT DONE` comment in the `exercises/intro/intro1.rs` file +Remove the `I AM NOT DONE` comment in the `exercises/intro00/intro1.rs` file to move on to the next exercise.""" [[exercises]] name = "intro2" -path = "exercises/intro/intro2.rs" +path = "exercises/00_intro/intro2.rs" mode = "compile" hint = """ Add an argument after the format string.""" @@ -19,7 +19,7 @@ Add an argument after the format string.""" [[exercises]] name = "variables1" -path = "exercises/variables/variables1.rs" +path = "exercises/01_variables/variables1.rs" mode = "compile" hint = """ The declaration in the first line in the main function is missing a keyword @@ -27,7 +27,7 @@ that is needed in Rust to create a new variable binding.""" [[exercises]] name = "variables2" -path = "exercises/variables/variables2.rs" +path = "exercises/01_variables/variables2.rs" mode = "compile" hint = """ The compiler message is saying that Rust cannot infer the type that the @@ -46,7 +46,7 @@ What if `x` is the same type as `10`? What if it's a different type?""" [[exercises]] name = "variables3" -path = "exercises/variables/variables3.rs" +path = "exercises/01_variables/variables3.rs" mode = "compile" hint = """ Oops! In this exercise, we have a variable binding that we've created on in the @@ -60,7 +60,7 @@ programming language -- thankfully the Rust compiler has caught this for us!""" [[exercises]] name = "variables4" -path = "exercises/variables/variables4.rs" +path = "exercises/01_variables/variables4.rs" mode = "compile" hint = """ In Rust, variable bindings are immutable by default. But here we're trying @@ -69,7 +69,7 @@ a variable binding mutable instead.""" [[exercises]] name = "variables5" -path = "exercises/variables/variables5.rs" +path = "exercises/01_variables/variables5.rs" mode = "compile" hint = """ In `variables4` we already learned how to make an immutable variable mutable @@ -87,7 +87,7 @@ Try to solve this exercise afterwards using this technique.""" [[exercises]] name = "variables6" -path = "exercises/variables/variables6.rs" +path = "exercises/01_variables/variables6.rs" mode = "compile" hint = """ We know about variables and mutability, but there is another important type of @@ -107,7 +107,7 @@ https://doc.rust-lang.org/book/ch03-01-variables-and-mutability.html#constants [[exercises]] name = "functions1" -path = "exercises/functions/functions1.rs" +path = "exercises/02_functions/functions1.rs" mode = "compile" hint = """ This main function is calling a function that it expects to exist, but the @@ -117,7 +117,7 @@ Sounds a lot like `main`, doesn't it?""" [[exercises]] name = "functions2" -path = "exercises/functions/functions2.rs" +path = "exercises/02_functions/functions2.rs" mode = "compile" hint = """ Rust requires that all parts of a function's signature have type annotations, @@ -125,7 +125,7 @@ but `call_me` is missing the type annotation of `num`.""" [[exercises]] name = "functions3" -path = "exercises/functions/functions3.rs" +path = "exercises/02_functions/functions3.rs" mode = "compile" hint = """ This time, the function *declaration* is okay, but there's something wrong @@ -137,7 +137,7 @@ DONE` comment.""" [[exercises]] name = "functions4" -path = "exercises/functions/functions4.rs" +path = "exercises/02_functions/functions4.rs" mode = "compile" hint = """ The error message points to the function `sale_price` and says it expects a type @@ -149,7 +149,7 @@ for the prices here, since they can't be negative? If so, kudos!""" [[exercises]] name = "functions5" -path = "exercises/functions/functions5.rs" +path = "exercises/02_functions/functions5.rs" mode = "compile" hint = """ This is a really common error that can be fixed by removing one character. @@ -168,7 +168,7 @@ They are not the same. There are two solutions: [[exercises]] name = "if1" -path = "exercises/if/if1.rs" +path = "exercises/03_if/if1.rs" mode = "test" hint = """ It's possible to do this in one line if you would like! @@ -184,7 +184,7 @@ Remember in Rust that: [[exercises]] name = "if2" -path = "exercises/if/if2.rs" +path = "exercises/03_if/if2.rs" mode = "test" hint = """ For that first compiler error, it's important in Rust that each conditional @@ -193,7 +193,7 @@ conditions checking different input values.""" [[exercises]] name = "if3" -path = "exercises/if/if3.rs" +path = "exercises/03_if/if3.rs" mode = "test" hint = """ In Rust, every arm of an `if` expression has to return the same type of value. @@ -211,19 +211,19 @@ hint = "No hints this time ;)" [[exercises]] name = "primitive_types1" -path = "exercises/primitive_types/primitive_types1.rs" +path = "exercises/04_primitive_types/primitive_types1.rs" mode = "compile" hint = "No hints this time ;)" [[exercises]] name = "primitive_types2" -path = "exercises/primitive_types/primitive_types2.rs" +path = "exercises/04_primitive_types/primitive_types2.rs" mode = "compile" hint = "No hints this time ;)" [[exercises]] name = "primitive_types3" -path = "exercises/primitive_types/primitive_types3.rs" +path = "exercises/04_primitive_types/primitive_types3.rs" mode = "compile" hint = """ There's a shorthand to initialize Arrays with a certain size that does not @@ -239,7 +239,7 @@ for `a.len() >= 100`?""" [[exercises]] name = "primitive_types4" -path = "exercises/primitive_types/primitive_types4.rs" +path = "exercises/04_primitive_types/primitive_types4.rs" mode = "test" hint = """ Take a look at the 'Understanding Ownership -> Slices -> Other Slices' section @@ -254,7 +254,7 @@ https://doc.rust-lang.org/nomicon/coercions.html""" [[exercises]] name = "primitive_types5" -path = "exercises/primitive_types/primitive_types5.rs" +path = "exercises/04_primitive_types/primitive_types5.rs" mode = "compile" hint = """ Take a look at the 'Data Types -> The Tuple Type' section of the book: @@ -267,7 +267,7 @@ of the tuple. You can do it!!""" [[exercises]] name = "primitive_types6" -path = "exercises/primitive_types/primitive_types6.rs" +path = "exercises/04_primitive_types/primitive_types6.rs" mode = "test" hint = """ While you could use a destructuring `let` for the tuple here, try @@ -280,7 +280,7 @@ Now you have another tool in your toolbox!""" [[exercises]] name = "vecs1" -path = "exercises/vecs/vecs1.rs" +path = "exercises/05_vecs/vecs1.rs" mode = "test" hint = """ In Rust, there are two ways to define a Vector. @@ -295,7 +295,7 @@ of the Rust book to learn more. [[exercises]] name = "vecs2" -path = "exercises/vecs/vecs2.rs" +path = "exercises/05_vecs/vecs2.rs" mode = "test" hint = """ In the first function we are looping over the Vector and getting a reference to @@ -318,7 +318,7 @@ What do you think is the more commonly used pattern under Rust developers? [[exercises]] name = "move_semantics1" -path = "exercises/move_semantics/move_semantics1.rs" +path = "exercises/06_move_semantics/move_semantics1.rs" mode = "test" hint = """ So you've got the "cannot borrow immutable local variable `vec` as mutable" @@ -332,7 +332,7 @@ happens!""" [[exercises]] name = "move_semantics2" -path = "exercises/move_semantics/move_semantics2.rs" +path = "exercises/06_move_semantics/move_semantics2.rs" mode = "test" hint = """ When running this exercise for the first time, you'll notice an error about @@ -353,7 +353,7 @@ try them all: [[exercises]] name = "move_semantics3" -path = "exercises/move_semantics/move_semantics3.rs" +path = "exercises/06_move_semantics/move_semantics3.rs" mode = "test" hint = """ The difference between this one and the previous ones is that the first line @@ -363,7 +363,7 @@ an existing binding to be a mutable binding instead of an immutable one :)""" [[exercises]] name = "move_semantics4" -path = "exercises/move_semantics/move_semantics4.rs" +path = "exercises/06_move_semantics/move_semantics4.rs" mode = "test" hint = """ Stop reading whenever you feel like you have enough direction :) Or try @@ -377,7 +377,7 @@ So the end goal is to: [[exercises]] name = "move_semantics5" -path = "exercises/move_semantics/move_semantics5.rs" +path = "exercises/06_move_semantics/move_semantics5.rs" mode = "test" hint = """ Carefully reason about the range in which each mutable reference is in @@ -389,7 +389,7 @@ https://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html#mutable-ref [[exercises]] name = "move_semantics6" -path = "exercises/move_semantics/move_semantics6.rs" +path = "exercises/06_move_semantics/move_semantics6.rs" mode = "compile" hint = """ To find the answer, you can consult the book section "References and Borrowing": @@ -410,7 +410,7 @@ Another hint: it has to do with the `&` character.""" [[exercises]] name = "structs1" -path = "exercises/structs/structs1.rs" +path = "exercises/07_structs/structs1.rs" mode = "test" hint = """ Rust has more than one type of struct. Three actually, all variants are used to @@ -430,7 +430,7 @@ https://doc.rust-lang.org/book/ch05-01-defining-structs.html""" [[exercises]] name = "structs2" -path = "exercises/structs/structs2.rs" +path = "exercises/07_structs/structs2.rs" mode = "test" hint = """ Creating instances of structs is easy, all you need to do is assign some values @@ -442,7 +442,7 @@ https://doc.rust-lang.org/stable/book/ch05-01-defining-structs.html#creating-ins [[exercises]] name = "structs3" -path = "exercises/structs/structs3.rs" +path = "exercises/07_structs/structs3.rs" mode = "test" hint = """ For `is_international`: What makes a package international? Seems related to @@ -458,13 +458,13 @@ https://doc.rust-lang.org/book/ch05-03-method-syntax.html""" [[exercises]] name = "enums1" -path = "exercises/enums/enums1.rs" +path = "exercises/08_enums/enums1.rs" mode = "compile" hint = "No hints this time ;)" [[exercises]] name = "enums2" -path = "exercises/enums/enums2.rs" +path = "exercises/08_enums/enums2.rs" mode = "compile" hint = """ You can create enumerations that have different variants with different types @@ -472,7 +472,7 @@ such as no data, anonymous structs, a single string, tuples, ...etc""" [[exercises]] name = "enums3" -path = "exercises/enums/enums3.rs" +path = "exercises/08_enums/enums3.rs" mode = "test" hint = """ As a first step, you can define enums to compile this code without errors. @@ -486,7 +486,7 @@ to get value in the variant.""" [[exercises]] name = "strings1" -path = "exercises/strings/strings1.rs" +path = "exercises/09_strings/strings1.rs" mode = "compile" hint = """ The `current_favorite_color` function is currently returning a string slice @@ -500,7 +500,7 @@ another way that uses the `From` trait.""" [[exercises]] name = "strings2" -path = "exercises/strings/strings2.rs" +path = "exercises/09_strings/strings2.rs" mode = "compile" hint = """ Yes, it would be really easy to fix this by just changing the value bound to @@ -515,7 +515,7 @@ https://doc.rust-lang.org/stable/book/ch15-02-deref.html#implicit-deref-coercion [[exercises]] name = "strings3" -path = "exercises/strings/strings3.rs" +path = "exercises/09_strings/strings3.rs" mode = "test" hint = """ There's tons of useful standard library functions for strings. Let's try and use some of them: @@ -526,7 +526,7 @@ the string slice into an owned string, which you can then freely extend.""" [[exercises]] name = "strings4" -path = "exercises/strings/strings4.rs" +path = "exercises/09_strings/strings4.rs" mode = "compile" hint = "No hints this time ;)" @@ -534,7 +534,7 @@ hint = "No hints this time ;)" [[exercises]] name = "modules1" -path = "exercises/modules/modules1.rs" +path = "exercises/10_modules/modules1.rs" mode = "compile" hint = """ Everything is private in Rust by default-- but there's a keyword we can use @@ -543,7 +543,7 @@ needs to be public.""" [[exercises]] name = "modules2" -path = "exercises/modules/modules2.rs" +path = "exercises/10_modules/modules2.rs" mode = "compile" hint = """ The delicious_snacks module is trying to present an external interface that is @@ -555,7 +555,7 @@ Learn more at https://doc.rust-lang.org/book/ch07-04-bringing-paths-into-scope-w [[exercises]] name = "modules3" -path = "exercises/modules/modules3.rs" +path = "exercises/10_modules/modules3.rs" mode = "compile" hint = """ `UNIX_EPOCH` and `SystemTime` are declared in the `std::time` module. Add a @@ -566,7 +566,7 @@ paths or the glob operator to bring these two in using only one line.""" [[exercises]] name = "hashmaps1" -path = "exercises/hashmaps/hashmaps1.rs" +path = "exercises/11_hashmaps/hashmaps1.rs" mode = "test" hint = """ Hint 1: Take a look at the return type of the function to figure out @@ -578,7 +578,7 @@ Hint 2: Number of fruits should be at least 5. And you have to put [[exercises]] name = "hashmaps2" -path = "exercises/hashmaps/hashmaps2.rs" +path = "exercises/11_hashmaps/hashmaps2.rs" mode = "test" hint = """ Use the `entry()` and `or_insert()` methods of `HashMap` to achieve this. @@ -587,7 +587,7 @@ Learn more at https://doc.rust-lang.org/stable/book/ch08-03-hash-maps.html#only- [[exercises]] name = "hashmaps3" -path = "exercises/hashmaps/hashmaps3.rs" +path = "exercises/11_hashmaps/hashmaps3.rs" mode = "test" hint = """ Hint 1: Use the `entry()` and `or_insert()` methods of `HashMap` to insert @@ -613,7 +613,7 @@ hint = "No hints this time ;)" [[exercises]] name = "options1" -path = "exercises/options/options1.rs" +path = "exercises/12_options/options1.rs" mode = "test" hint = """ Options can have a `Some` value, with an inner value, or a `None` value, @@ -625,7 +625,7 @@ it doesn't panic in your face later?""" [[exercises]] name = "options2" -path = "exercises/options/options2.rs" +path = "exercises/12_options/options2.rs" mode = "test" hint = """ Check out: @@ -642,7 +642,7 @@ Also see `Option::flatten` [[exercises]] name = "options3" -path = "exercises/options/options3.rs" +path = "exercises/12_options/options3.rs" mode = "compile" hint = """ The compiler says a partial move happened in the `match` statement. How can @@ -655,7 +655,7 @@ https://doc.rust-lang.org/std/keyword.ref.html""" [[exercises]] name = "errors1" -path = "exercises/error_handling/errors1.rs" +path = "exercises/13_error_handling/errors1.rs" mode = "test" hint = """ `Ok` and `Err` are the two variants of `Result`, so what the tests are saying @@ -671,7 +671,7 @@ To make this change, you'll need to: [[exercises]] name = "errors2" -path = "exercises/error_handling/errors2.rs" +path = "exercises/13_error_handling/errors2.rs" mode = "test" hint = """ One way to handle this is using a `match` statement on @@ -687,7 +687,7 @@ and give it a try!""" [[exercises]] name = "errors3" -path = "exercises/error_handling/errors3.rs" +path = "exercises/13_error_handling/errors3.rs" mode = "compile" hint = """ If other functions can return a `Result`, why shouldn't `main`? It's a fairly @@ -699,7 +699,7 @@ positive results.""" [[exercises]] name = "errors4" -path = "exercises/error_handling/errors4.rs" +path = "exercises/13_error_handling/errors4.rs" mode = "test" hint = """ `PositiveNonzeroInteger::new` is always creating a new instance and returning @@ -711,7 +711,7 @@ everything is... okay :)""" [[exercises]] name = "errors5" -path = "exercises/error_handling/errors5.rs" +path = "exercises/13_error_handling/errors5.rs" mode = "compile" hint = """ There are two different possible `Result` types produced within `main()`, which @@ -735,7 +735,7 @@ https://doc.rust-lang.org/stable/rust-by-example/error/multiple_error_types/reen [[exercises]] name = "errors6" -path = "exercises/error_handling/errors6.rs" +path = "exercises/13_error_handling/errors6.rs" mode = "test" hint = """ This exercise uses a completed version of `PositiveNonzeroInteger` from @@ -757,7 +757,7 @@ https://doc.rust-lang.org/std/result/enum.Result.html#method.map_err""" [[exercises]] name = "generics1" -path = "exercises/generics/generics1.rs" +path = "exercises/14_generics/generics1.rs" mode = "compile" hint = """ Vectors in Rust make use of generics to create dynamically sized arrays of any @@ -767,7 +767,7 @@ You need to tell the compiler what type we are pushing onto this vector.""" [[exercises]] name = "generics2" -path = "exercises/generics/generics2.rs" +path = "exercises/14_generics/generics2.rs" mode = "test" hint = """ Currently we are wrapping only values of type `u32`. @@ -781,7 +781,7 @@ If you are still stuck https://doc.rust-lang.org/stable/book/ch10-01-syntax.html [[exercises]] name = "traits1" -path = "exercises/traits/traits1.rs" +path = "exercises/15_traits/traits1.rs" mode = "test" hint = """ A discussion about Traits in Rust can be found at: @@ -790,7 +790,7 @@ https://doc.rust-lang.org/book/ch10-02-traits.html [[exercises]] name = "traits2" -path = "exercises/traits/traits2.rs" +path = "exercises/15_traits/traits2.rs" mode = "test" hint = """ Notice how the trait takes ownership of `self`, and returns `Self`. @@ -803,7 +803,7 @@ the documentation at: https://doc.rust-lang.org/std/vec/struct.Vec.html""" [[exercises]] name = "traits3" -path = "exercises/traits/traits3.rs" +path = "exercises/15_traits/traits3.rs" mode = "test" hint = """ Traits can have a default implementation for functions. Structs that implement @@ -815,7 +815,7 @@ See the documentation at: https://doc.rust-lang.org/book/ch10-02-traits.html#def [[exercises]] name = "traits4" -path = "exercises/traits/traits4.rs" +path = "exercises/15_traits/traits4.rs" mode = "test" hint = """ Instead of using concrete types as parameters you can use traits. Try replacing @@ -826,7 +826,7 @@ See the documentation at: https://doc.rust-lang.org/book/ch10-02-traits.html#tra [[exercises]] name = "traits5" -path = "exercises/traits/traits5.rs" +path = "exercises/15_traits/traits5.rs" mode = "compile" hint = """ To ensure a parameter implements multiple traits use the '+ syntax'. Try @@ -851,7 +851,7 @@ You may also need this: `use std::fmt::Display;`.""" [[exercises]] name = "lifetimes1" -path = "exercises/lifetimes/lifetimes1.rs" +path = "exercises/16_lifetimes/lifetimes1.rs" mode = "compile" hint = """ Let the compiler guide you. Also take a look at the book if you need help: @@ -859,7 +859,7 @@ https://doc.rust-lang.org/book/ch10-03-lifetime-syntax.html""" [[exercises]] name = "lifetimes2" -path = "exercises/lifetimes/lifetimes2.rs" +path = "exercises/16_lifetimes/lifetimes2.rs" mode = "compile" hint = """ Remember that the generic lifetime `'a` will get the concrete lifetime that is @@ -873,7 +873,7 @@ inner block: [[exercises]] name = "lifetimes3" -path = "exercises/lifetimes/lifetimes3.rs" +path = "exercises/16_lifetimes/lifetimes3.rs" mode = "compile" hint = """ If you use a lifetime annotation in a struct's fields, where else does it need @@ -883,7 +883,7 @@ to be added?""" [[exercises]] name = "tests1" -path = "exercises/tests/tests1.rs" +path = "exercises/17_tests/tests1.rs" mode = "test" hint = """ You don't even need to write any code to test -- you can just test values and @@ -898,7 +898,7 @@ ones pass, and which ones fail :)""" [[exercises]] name = "tests2" -path = "exercises/tests/tests2.rs" +path = "exercises/17_tests/tests2.rs" mode = "test" hint = """ Like the previous exercise, you don't need to write any code to get this test @@ -911,7 +911,7 @@ argument comes first and which comes second!""" [[exercises]] name = "tests3" -path = "exercises/tests/tests3.rs" +path = "exercises/17_tests/tests3.rs" mode = "test" hint = """ You can call a function right where you're passing arguments to `assert!`. So @@ -922,7 +922,7 @@ what you're doing using `!`, like `assert!(!having_fun())`.""" [[exercises]] name = "tests4" -path = "exercises/tests/tests4.rs" +path = "exercises/17_tests/tests4.rs" mode = "test" hint = """ We expect method `Rectangle::new()` to panic for negative values. @@ -936,7 +936,7 @@ https://doc.rust-lang.org/stable/book/ch11-01-writing-tests.html#checking-for-pa [[exercises]] name = "iterators1" -path = "exercises/iterators/iterators1.rs" +path = "exercises/18_iterators/iterators1.rs" mode = "test" hint = """ Step 1: @@ -959,7 +959,7 @@ https://doc.rust-lang.org/std/iter/trait.Iterator.html for some ideas. [[exercises]] name = "iterators2" -path = "exercises/iterators/iterators2.rs" +path = "exercises/18_iterators/iterators2.rs" mode = "test" hint = """ Step 1: @@ -985,7 +985,7 @@ powerful and very general. Rust just needs to know the desired type.""" [[exercises]] name = "iterators3" -path = "exercises/iterators/iterators3.rs" +path = "exercises/18_iterators/iterators3.rs" mode = "test" hint = """ The `divide` function needs to return the correct error when even division is @@ -1004,7 +1004,7 @@ powerful! It can make the solution to this exercise infinitely easier.""" [[exercises]] name = "iterators4" -path = "exercises/iterators/iterators4.rs" +path = "exercises/18_iterators/iterators4.rs" mode = "test" hint = """ In an imperative language, you might write a `for` loop that updates a mutable @@ -1016,7 +1016,7 @@ Hint 2: Check out the `fold` and `rfold` methods!""" [[exercises]] name = "iterators5" -path = "exercises/iterators/iterators5.rs" +path = "exercises/18_iterators/iterators5.rs" mode = "test" hint = """ The documentation for the `std::iter::Iterator` trait contains numerous methods @@ -1035,7 +1035,7 @@ a different method that could make your code more compact than using `fold`.""" [[exercises]] name = "box1" -path = "exercises/smart_pointers/box1.rs" +path = "exercises/19_smart_pointers/box1.rs" mode = "test" hint = """ Step 1: @@ -1059,7 +1059,7 @@ definition and try other types! [[exercises]] name = "rc1" -path = "exercises/smart_pointers/rc1.rs" +path = "exercises/19_smart_pointers/rc1.rs" mode = "test" hint = """ This is a straightforward exercise to use the `Rc` type. Each `Planet` has @@ -1078,7 +1078,7 @@ See more at: https://doc.rust-lang.org/book/ch15-04-rc.html [[exercises]] name = "arc1" -path = "exercises/smart_pointers/arc1.rs" +path = "exercises/19_smart_pointers/arc1.rs" mode = "compile" hint = """ Make `shared_numbers` be an `Arc` from the numbers vector. Then, in order @@ -1096,7 +1096,7 @@ https://doc.rust-lang.org/stable/book/ch16-00-concurrency.html [[exercises]] name = "cow1" -path = "exercises/smart_pointers/cow1.rs" +path = "exercises/19_smart_pointers/cow1.rs" mode = "test" hint = """ If `Cow` already owns the data it doesn't need to clone it when `to_mut()` is @@ -1110,7 +1110,7 @@ on the `Cow` type. [[exercises]] name = "threads1" -path = "exercises/threads/threads1.rs" +path = "exercises/20_threads/threads1.rs" mode = "compile" hint = """ `JoinHandle` is a struct that is returned from a spawned thread: @@ -1128,7 +1128,7 @@ https://doc.rust-lang.org/std/thread/struct.JoinHandle.html [[exercises]] name = "threads2" -path = "exercises/threads/threads2.rs" +path = "exercises/20_threads/threads2.rs" mode = "compile" hint = """ `Arc` is an Atomic Reference Counted pointer that allows safe, shared access @@ -1158,7 +1158,7 @@ what you've learned :)""" [[exercises]] name = "threads3" -path = "exercises/threads/threads3.rs" +path = "exercises/20_threads/threads3.rs" mode = "test" hint = """ An alternate way to handle concurrency between threads is to use an `mpsc` @@ -1177,7 +1177,7 @@ See https://doc.rust-lang.org/book/ch16-02-message-passing.html for more info. [[exercises]] name = "macros1" -path = "exercises/macros/macros1.rs" +path = "exercises/21_macros/macros1.rs" mode = "compile" hint = """ When you call a macro, you need to add something special compared to a @@ -1186,7 +1186,7 @@ regular function call. If you're stuck, take a look at what's inside [[exercises]] name = "macros2" -path = "exercises/macros/macros2.rs" +path = "exercises/21_macros/macros2.rs" mode = "compile" hint = """ Macros don't quite play by the same rules as the rest of Rust, in terms of @@ -1197,7 +1197,7 @@ Unlike other things in Rust, the order of "where you define a macro" versus [[exercises]] name = "macros3" -path = "exercises/macros/macros3.rs" +path = "exercises/21_macros/macros3.rs" mode = "compile" hint = """ In order to use a macro outside of its module, you need to do something @@ -1208,7 +1208,7 @@ exported macros, if you've seen any of those around.""" [[exercises]] name = "macros4" -path = "exercises/macros/macros4.rs" +path = "exercises/21_macros/macros4.rs" mode = "compile" hint = """ You only need to add a single character to make this compile. @@ -1225,7 +1225,7 @@ https://veykril.github.io/tlborm/""" [[exercises]] name = "clippy1" -path = "exercises/clippy/clippy1.rs" +path = "exercises/22_clippy/clippy1.rs" mode = "clippy" hint = """ Rust stores the highest precision version of any long or infinite precision @@ -1241,14 +1241,14 @@ appropriate replacement constant from `std::f32::consts`...""" [[exercises]] name = "clippy2" -path = "exercises/clippy/clippy2.rs" +path = "exercises/22_clippy/clippy2.rs" mode = "clippy" hint = """ `for` loops over `Option` values are more clearly expressed as an `if let`""" [[exercises]] name = "clippy3" -path = "exercises/clippy/clippy3.rs" +path = "exercises/22_clippy/clippy3.rs" mode = "clippy" hint = "No hints this time!" @@ -1256,7 +1256,7 @@ hint = "No hints this time!" [[exercises]] name = "using_as" -path = "exercises/conversions/using_as.rs" +path = "exercises/23_conversions/using_as.rs" mode = "test" hint = """ Use the `as` operator to cast one of the operands in the last line of the @@ -1264,14 +1264,14 @@ Use the `as` operator to cast one of the operands in the last line of the [[exercises]] name = "from_into" -path = "exercises/conversions/from_into.rs" +path = "exercises/23_conversions/from_into.rs" mode = "test" hint = """ Follow the steps provided right before the `From` implementation""" [[exercises]] name = "from_str" -path = "exercises/conversions/from_str.rs" +path = "exercises/23_conversions/from_str.rs" mode = "test" hint = """ The implementation of `FromStr` should return an `Ok` with a `Person` object, @@ -1292,7 +1292,7 @@ https://doc.rust-lang.org/stable/rust-by-example/error/multiple_error_types/reen [[exercises]] name = "try_from_into" -path = "exercises/conversions/try_from_into.rs" +path = "exercises/23_conversions/try_from_into.rs" mode = "test" hint = """ Follow the steps provided right before the `TryFrom` implementation. @@ -1315,7 +1315,7 @@ Challenge: Can you make the `TryFrom` implementations generic over many integer [[exercises]] name = "as_ref_mut" -path = "exercises/conversions/as_ref_mut.rs" +path = "exercises/23_conversions/as_ref_mut.rs" mode = "test" hint = """ Add `AsRef` or `AsMut` as a trait bound to the functions."""