mirror of
https://github.com/rust-lang/rustlings.git
synced 2024-12-26 00:00:03 +03:00
Refactor embedded files to add solutions
This commit is contained in:
parent
e5a19a4c33
commit
2dac8e509b
2
Cargo.lock
generated
2
Cargo.lock
generated
|
@ -690,6 +690,8 @@ name = "rustlings-macros"
|
||||||
version = "6.0.0-alpha.0"
|
version = "6.0.0-alpha.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"quote",
|
"quote",
|
||||||
|
"serde",
|
||||||
|
"toml_edit",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
|
@ -17,6 +17,10 @@ authors = [
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
|
[workspace.dependencies]
|
||||||
|
serde = { version = "1.0.198", features = ["derive"] }
|
||||||
|
toml_edit = { version = "0.22.12", default-features = false, features = ["parse", "serde"] }
|
||||||
|
|
||||||
[package]
|
[package]
|
||||||
name = "rustlings"
|
name = "rustlings"
|
||||||
description = "Small exercises to get you used to reading and writing Rust code!"
|
description = "Small exercises to get you used to reading and writing Rust code!"
|
||||||
|
@ -41,8 +45,8 @@ hashbrown = "0.14.3"
|
||||||
notify-debouncer-mini = "0.4.1"
|
notify-debouncer-mini = "0.4.1"
|
||||||
ratatui = "0.26.2"
|
ratatui = "0.26.2"
|
||||||
rustlings-macros = { path = "rustlings-macros", version = "6.0.0-alpha.0" }
|
rustlings-macros = { path = "rustlings-macros", version = "6.0.0-alpha.0" }
|
||||||
serde = { version = "1.0.198", features = ["derive"] }
|
serde.workspace = true
|
||||||
toml_edit = { version = "0.22.12", default-features = false, features = ["parse", "serde"] }
|
toml_edit.workspace = true
|
||||||
which = "6.0.1"
|
which = "6.0.1"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
|
|
|
@ -236,6 +236,7 @@ Make sure the type is consistent across all arms."""
|
||||||
|
|
||||||
[[exercises]]
|
[[exercises]]
|
||||||
name = "quiz1"
|
name = "quiz1"
|
||||||
|
dir = "quizzes"
|
||||||
mode = "test"
|
mode = "test"
|
||||||
hint = "No hints this time ;)"
|
hint = "No hints this time ;)"
|
||||||
|
|
||||||
|
@ -637,6 +638,7 @@ Learn more at https://doc.rust-lang.org/book/ch08-03-hash-maps.html#updating-a-v
|
||||||
|
|
||||||
[[exercises]]
|
[[exercises]]
|
||||||
name = "quiz2"
|
name = "quiz2"
|
||||||
|
dir = "quizzes"
|
||||||
mode = "test"
|
mode = "test"
|
||||||
hint = "No hints this time ;)"
|
hint = "No hints this time ;)"
|
||||||
|
|
||||||
|
@ -870,6 +872,7 @@ See the documentation at: https://doc.rust-lang.org/book/ch10-02-traits.html#spe
|
||||||
|
|
||||||
[[exercises]]
|
[[exercises]]
|
||||||
name = "quiz3"
|
name = "quiz3"
|
||||||
|
dir = "quizzes"
|
||||||
mode = "test"
|
mode = "test"
|
||||||
hint = """
|
hint = """
|
||||||
To find the best solution to this challenge you're going to need to think back
|
To find the best solution to this challenge you're going to need to think back
|
||||||
|
|
|
@ -11,3 +11,5 @@ proc-macro = true
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
quote = "1.0.36"
|
quote = "1.0.36"
|
||||||
|
serde.workspace = true
|
||||||
|
toml_edit.workspace = true
|
||||||
|
|
|
@ -1,86 +1,39 @@
|
||||||
use proc_macro::TokenStream;
|
use proc_macro::TokenStream;
|
||||||
use quote::quote;
|
use quote::quote;
|
||||||
use std::{fs::read_dir, panic, path::PathBuf};
|
use serde::Deserialize;
|
||||||
|
|
||||||
fn path_to_string(path: PathBuf) -> String {
|
#[derive(Deserialize)]
|
||||||
path.into_os_string()
|
struct ExerciseInfo {
|
||||||
.into_string()
|
name: String,
|
||||||
.unwrap_or_else(|original| {
|
dir: String,
|
||||||
panic!("The path {} is invalid UTF8", original.to_string_lossy());
|
}
|
||||||
})
|
|
||||||
|
#[derive(Deserialize)]
|
||||||
|
struct InfoFile {
|
||||||
|
exercises: Vec<ExerciseInfo>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[proc_macro]
|
#[proc_macro]
|
||||||
pub fn include_files(_: TokenStream) -> TokenStream {
|
pub fn include_files(_: TokenStream) -> TokenStream {
|
||||||
let mut files = Vec::with_capacity(8);
|
let exercises = toml_edit::de::from_str::<InfoFile>(include_str!("../../info.toml"))
|
||||||
let mut dirs = Vec::with_capacity(128);
|
.expect("Failed to parse `info.toml`")
|
||||||
|
.exercises;
|
||||||
|
|
||||||
for entry in read_dir("exercises").expect("Failed to open the `exercises` directory") {
|
let exercise_files = exercises
|
||||||
let entry = entry.expect("Failed to read the `exercises` directory");
|
.iter()
|
||||||
|
.map(|exercise| format!("../exercises/{}/{}.rs", exercise.dir, exercise.name));
|
||||||
if entry.file_type().unwrap().is_file() {
|
let solution_files = exercises
|
||||||
let path = entry.path();
|
.iter()
|
||||||
if path.file_name().unwrap() != "README.md" {
|
.map(|exercise| format!("../solutions/{}/{}.rs", exercise.dir, exercise.name));
|
||||||
files.push(path_to_string(path));
|
let dirs = exercises.iter().map(|exercise| &exercise.dir);
|
||||||
}
|
let readmes = exercises
|
||||||
|
.iter()
|
||||||
continue;
|
.map(|exercise| format!("../exercises/{}/README.md", exercise.dir));
|
||||||
}
|
|
||||||
|
|
||||||
let dir_path = entry.path();
|
|
||||||
let dir_files = read_dir(&dir_path).unwrap_or_else(|e| {
|
|
||||||
panic!("Failed to open the directory {}: {e}", dir_path.display());
|
|
||||||
});
|
|
||||||
let dir_path = path_to_string(dir_path);
|
|
||||||
let dir_files = dir_files.filter_map(|entry| {
|
|
||||||
let entry = entry.unwrap_or_else(|e| {
|
|
||||||
panic!("Failed to read the directory {dir_path}: {e}");
|
|
||||||
});
|
|
||||||
let path = entry.path();
|
|
||||||
|
|
||||||
if !entry.file_type().unwrap().is_file() {
|
|
||||||
panic!("Found {} but expected only files", path.display());
|
|
||||||
}
|
|
||||||
|
|
||||||
if path.file_name().unwrap() == "README.md" {
|
|
||||||
return None;
|
|
||||||
}
|
|
||||||
|
|
||||||
Some(path_to_string(path))
|
|
||||||
});
|
|
||||||
|
|
||||||
dirs.push(quote! {
|
|
||||||
EmbeddedFlatDir {
|
|
||||||
path: #dir_path,
|
|
||||||
readme: EmbeddedFile {
|
|
||||||
path: ::std::concat!(#dir_path, "/README.md"),
|
|
||||||
content: ::std::include_bytes!(::std::concat!("../", #dir_path, "/README.md")),
|
|
||||||
},
|
|
||||||
content: &[
|
|
||||||
#(EmbeddedFile {
|
|
||||||
path: #dir_files,
|
|
||||||
content: ::std::include_bytes!(::std::concat!("../", #dir_files)),
|
|
||||||
}),*
|
|
||||||
],
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
quote! {
|
quote! {
|
||||||
EmbeddedFiles {
|
EmbeddedFiles {
|
||||||
exercises_dir: ExercisesDir {
|
exercise_files: &[#(ExerciseFiles { exercise: include_bytes!(#exercise_files), solution: include_bytes!(#solution_files) }),*],
|
||||||
readme: EmbeddedFile {
|
exercise_dirs: &[#(ExerciseDir { name: #dirs, readme: include_bytes!(#readmes) }),*]
|
||||||
path: "exercises/README.md",
|
|
||||||
content: ::std::include_bytes!("../exercises/README.md"),
|
|
||||||
},
|
|
||||||
files: &[#(
|
|
||||||
EmbeddedFile {
|
|
||||||
path: #files,
|
|
||||||
content: ::std::include_bytes!(::std::concat!("../", #files)),
|
|
||||||
}
|
|
||||||
),*],
|
|
||||||
dirs: &[#(#dirs),*],
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.into()
|
.into()
|
||||||
|
|
1
solutions/00_intro/intro1.rs
Normal file
1
solutions/00_intro/intro1.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/00_intro/intro2.rs
Normal file
1
solutions/00_intro/intro2.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/01_variables/variables1.rs
Normal file
1
solutions/01_variables/variables1.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/01_variables/variables2.rs
Normal file
1
solutions/01_variables/variables2.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/01_variables/variables3.rs
Normal file
1
solutions/01_variables/variables3.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/01_variables/variables4.rs
Normal file
1
solutions/01_variables/variables4.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/01_variables/variables5.rs
Normal file
1
solutions/01_variables/variables5.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/01_variables/variables6.rs
Normal file
1
solutions/01_variables/variables6.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/02_functions/functions1.rs
Normal file
1
solutions/02_functions/functions1.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/02_functions/functions2.rs
Normal file
1
solutions/02_functions/functions2.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/02_functions/functions3.rs
Normal file
1
solutions/02_functions/functions3.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/02_functions/functions4.rs
Normal file
1
solutions/02_functions/functions4.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/02_functions/functions5.rs
Normal file
1
solutions/02_functions/functions5.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/03_if/if1.rs
Normal file
1
solutions/03_if/if1.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/03_if/if2.rs
Normal file
1
solutions/03_if/if2.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/03_if/if3.rs
Normal file
1
solutions/03_if/if3.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/04_primitive_types/primitive_types1.rs
Normal file
1
solutions/04_primitive_types/primitive_types1.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/04_primitive_types/primitive_types2.rs
Normal file
1
solutions/04_primitive_types/primitive_types2.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/04_primitive_types/primitive_types3.rs
Normal file
1
solutions/04_primitive_types/primitive_types3.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/04_primitive_types/primitive_types4.rs
Normal file
1
solutions/04_primitive_types/primitive_types4.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/04_primitive_types/primitive_types5.rs
Normal file
1
solutions/04_primitive_types/primitive_types5.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/04_primitive_types/primitive_types6.rs
Normal file
1
solutions/04_primitive_types/primitive_types6.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/05_vecs/vecs1.rs
Normal file
1
solutions/05_vecs/vecs1.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/05_vecs/vecs2.rs
Normal file
1
solutions/05_vecs/vecs2.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/06_move_semantics/move_semantics1.rs
Normal file
1
solutions/06_move_semantics/move_semantics1.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/06_move_semantics/move_semantics2.rs
Normal file
1
solutions/06_move_semantics/move_semantics2.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/06_move_semantics/move_semantics3.rs
Normal file
1
solutions/06_move_semantics/move_semantics3.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/06_move_semantics/move_semantics4.rs
Normal file
1
solutions/06_move_semantics/move_semantics4.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/06_move_semantics/move_semantics5.rs
Normal file
1
solutions/06_move_semantics/move_semantics5.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/06_move_semantics/move_semantics6.rs
Normal file
1
solutions/06_move_semantics/move_semantics6.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/07_structs/structs1.rs
Normal file
1
solutions/07_structs/structs1.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/07_structs/structs2.rs
Normal file
1
solutions/07_structs/structs2.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/07_structs/structs3.rs
Normal file
1
solutions/07_structs/structs3.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/08_enums/enums1.rs
Normal file
1
solutions/08_enums/enums1.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/08_enums/enums2.rs
Normal file
1
solutions/08_enums/enums2.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/08_enums/enums3.rs
Normal file
1
solutions/08_enums/enums3.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/09_strings/strings1.rs
Normal file
1
solutions/09_strings/strings1.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/09_strings/strings2.rs
Normal file
1
solutions/09_strings/strings2.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/09_strings/strings3.rs
Normal file
1
solutions/09_strings/strings3.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/09_strings/strings4.rs
Normal file
1
solutions/09_strings/strings4.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/10_modules/modules1.rs
Normal file
1
solutions/10_modules/modules1.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/10_modules/modules2.rs
Normal file
1
solutions/10_modules/modules2.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/10_modules/modules3.rs
Normal file
1
solutions/10_modules/modules3.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/11_hashmaps/hashmaps1.rs
Normal file
1
solutions/11_hashmaps/hashmaps1.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/11_hashmaps/hashmaps2.rs
Normal file
1
solutions/11_hashmaps/hashmaps2.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/11_hashmaps/hashmaps3.rs
Normal file
1
solutions/11_hashmaps/hashmaps3.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/12_options/options1.rs
Normal file
1
solutions/12_options/options1.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/12_options/options2.rs
Normal file
1
solutions/12_options/options2.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/12_options/options3.rs
Normal file
1
solutions/12_options/options3.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/13_error_handling/errors1.rs
Normal file
1
solutions/13_error_handling/errors1.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/13_error_handling/errors2.rs
Normal file
1
solutions/13_error_handling/errors2.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/13_error_handling/errors3.rs
Normal file
1
solutions/13_error_handling/errors3.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/13_error_handling/errors4.rs
Normal file
1
solutions/13_error_handling/errors4.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/13_error_handling/errors5.rs
Normal file
1
solutions/13_error_handling/errors5.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/13_error_handling/errors6.rs
Normal file
1
solutions/13_error_handling/errors6.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/14_generics/generics1.rs
Normal file
1
solutions/14_generics/generics1.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/14_generics/generics2.rs
Normal file
1
solutions/14_generics/generics2.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/15_traits/traits1.rs
Normal file
1
solutions/15_traits/traits1.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/15_traits/traits2.rs
Normal file
1
solutions/15_traits/traits2.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/15_traits/traits3.rs
Normal file
1
solutions/15_traits/traits3.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/15_traits/traits4.rs
Normal file
1
solutions/15_traits/traits4.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/15_traits/traits5.rs
Normal file
1
solutions/15_traits/traits5.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/16_lifetimes/lifetimes1.rs
Normal file
1
solutions/16_lifetimes/lifetimes1.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/16_lifetimes/lifetimes2.rs
Normal file
1
solutions/16_lifetimes/lifetimes2.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/16_lifetimes/lifetimes3.rs
Normal file
1
solutions/16_lifetimes/lifetimes3.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/17_tests/tests1.rs
Normal file
1
solutions/17_tests/tests1.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/17_tests/tests2.rs
Normal file
1
solutions/17_tests/tests2.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/17_tests/tests3.rs
Normal file
1
solutions/17_tests/tests3.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/17_tests/tests4.rs
Normal file
1
solutions/17_tests/tests4.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/18_iterators/iterators1.rs
Normal file
1
solutions/18_iterators/iterators1.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/18_iterators/iterators2.rs
Normal file
1
solutions/18_iterators/iterators2.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/18_iterators/iterators3.rs
Normal file
1
solutions/18_iterators/iterators3.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/18_iterators/iterators4.rs
Normal file
1
solutions/18_iterators/iterators4.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/18_iterators/iterators5.rs
Normal file
1
solutions/18_iterators/iterators5.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/19_smart_pointers/arc1.rs
Normal file
1
solutions/19_smart_pointers/arc1.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/19_smart_pointers/box1.rs
Normal file
1
solutions/19_smart_pointers/box1.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/19_smart_pointers/cow1.rs
Normal file
1
solutions/19_smart_pointers/cow1.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/19_smart_pointers/rc1.rs
Normal file
1
solutions/19_smart_pointers/rc1.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/20_threads/threads1.rs
Normal file
1
solutions/20_threads/threads1.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/20_threads/threads2.rs
Normal file
1
solutions/20_threads/threads2.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/20_threads/threads3.rs
Normal file
1
solutions/20_threads/threads3.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/21_macros/macros1.rs
Normal file
1
solutions/21_macros/macros1.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/21_macros/macros2.rs
Normal file
1
solutions/21_macros/macros2.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/21_macros/macros3.rs
Normal file
1
solutions/21_macros/macros3.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/21_macros/macros4.rs
Normal file
1
solutions/21_macros/macros4.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/22_clippy/clippy1.rs
Normal file
1
solutions/22_clippy/clippy1.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/22_clippy/clippy2.rs
Normal file
1
solutions/22_clippy/clippy2.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/22_clippy/clippy3.rs
Normal file
1
solutions/22_clippy/clippy3.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/23_conversions/as_ref_mut.rs
Normal file
1
solutions/23_conversions/as_ref_mut.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/23_conversions/from_into.rs
Normal file
1
solutions/23_conversions/from_into.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/23_conversions/from_str.rs
Normal file
1
solutions/23_conversions/from_str.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/23_conversions/try_from_into.rs
Normal file
1
solutions/23_conversions/try_from_into.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/23_conversions/using_as.rs
Normal file
1
solutions/23_conversions/using_as.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/quizzes/quiz1.rs
Normal file
1
solutions/quizzes/quiz1.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
1
solutions/quizzes/quiz2.rs
Normal file
1
solutions/quizzes/quiz2.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
// TODO
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue