Add initial solution files for Rustlings exercises and quizzes

- Created empty solution files for various exercises in strings, modules, hashmaps, options, error handling, generics, traits, lifetimes, tests, iterators, smart pointers, threads, macros, clippy, conversions, and quizzes.
- Each solution file contains a main function with a comment indicating that it will be automatically filled after completing the exercise.
- Added a README.md file to provide information about the solutions and their purpose.
This commit is contained in:
2026-01-26 16:43:17 +01:00
commit f4120eabdf
219 changed files with 5158 additions and 0 deletions

View File

@@ -0,0 +1,15 @@
# Macros
Rust's macro system is very powerful, but also kind of difficult to wrap your
head around. We're not going to teach you how to write your own fully-featured
macros. Instead, we'll show you how to use and create them.
If you'd like to learn more about writing your own macros, the
[macrokata](https://github.com/tfpk/macrokata) project has a similar style
of exercises to Rustlings, but is all about learning to write Macros.
## Further information
- [The Rust Book - Macros](https://doc.rust-lang.org/book/ch20-05-macros.html)
- [The Little Book of Rust Macros](https://veykril.github.io/tlborm/)
- [Rust by Example - macro_rules!](https://doc.rust-lang.org/rust-by-example/macros.html)

View File

@@ -0,0 +1,10 @@
macro_rules! my_macro {
() => {
println!("Check out my macro!");
};
}
fn main() {
// TODO: Fix the macro call.
my_macro!();
}

View File

@@ -0,0 +1,10 @@
// TODO: Fix the compiler error by moving the whole definition of this macro.
macro_rules! my_macro {
() => {
println!("Check out my macro!");
};
}
fn main() {
my_macro!();
}

View File

@@ -0,0 +1,12 @@
// TODO: Fix the compiler error without taking the macro definition out of this
// module.
#[macro_export]
macro_rules! my_macro {
() => {
println!("Check out my macro!");
};
}
fn main() {
my_macro!();
}

View File

@@ -0,0 +1,15 @@
// TODO: Fix the compiler error by adding one or two characters.
#[rustfmt::skip]
macro_rules! my_macro {
() => {
println!("Check out my macro!");
};
($val:expr) => {
println!("Look at this other macro: {}", $val);
}
}
fn main() {
my_macro!();
my_macro!(7777);
}