diff --git a/exercises/macros/macros1.rs b/exercises/macros/macros1.rs index ed0dac8..931e270 100644 --- a/exercises/macros/macros1.rs +++ b/exercises/macros/macros1.rs @@ -1,8 +1,8 @@ // macros1.rs // Make me compile! Execute `rustlings hint macros1` for hints :) -// I AM NOT DONE - +// I am a rooky in metaprogramming +// strongly recommend to read and practice on https://danielkeep.github.io/tlborm/book/README.html macro_rules! my_macro { () => { println!("Check out my macro!"); @@ -10,5 +10,5 @@ macro_rules! my_macro { } fn main() { - my_macro(); + my_macro!(); } diff --git a/exercises/macros/macros2.rs b/exercises/macros/macros2.rs index d0be123..a7ea656 100644 --- a/exercises/macros/macros2.rs +++ b/exercises/macros/macros2.rs @@ -1,12 +1,11 @@ // macros2.rs // Make me compile! Execute `rustlings hint macros2` for hints :) -// I AM NOT DONE fn main() { my_macro!(); } - +#[macro_export] macro_rules! my_macro { () => { println!("Check out my macro!"); diff --git a/exercises/macros/macros3.rs b/exercises/macros/macros3.rs index 93a4311..3921fe5 100644 --- a/exercises/macros/macros3.rs +++ b/exercises/macros/macros3.rs @@ -2,9 +2,9 @@ // Make me compile, without taking the macro out of the module! // Execute `rustlings hint macros3` for hints :) -// I AM NOT DONE - +//export works even with no pub mod mod macros { + #[macro_export] macro_rules! my_macro { () => { println!("Check out my macro!"); diff --git a/exercises/macros/macros4.rs b/exercises/macros/macros4.rs index 3a74807..92f7027 100644 --- a/exercises/macros/macros4.rs +++ b/exercises/macros/macros4.rs @@ -1,15 +1,14 @@ // macros4.rs // Make me compile! Execute `rustlings hint macros4` for hints :) -// I AM NOT DONE macro_rules! my_macro { () => { println!("Check out my macro!"); - } + }; ($val:expr) => { println!("Look at this other macro: {}", $val); - } + }; } fn main() { diff --git a/exercises/modules/modules1.rs b/exercises/modules/modules1.rs index 812dfee..f0c8b0f 100644 --- a/exercises/modules/modules1.rs +++ b/exercises/modules/modules1.rs @@ -1,10 +1,9 @@ // modules1.rs // Make me compile! Execute `rustlings hint modules1` for hints :) -// I AM NOT DONE -mod sausage_factory { - fn make_sausage() { +pub mod sausage_factory { + pub fn make_sausage() { println!("sausage!"); } } diff --git a/exercises/modules/modules2.rs b/exercises/modules/modules2.rs index fde439d..b11c8c4 100644 --- a/exercises/modules/modules2.rs +++ b/exercises/modules/modules2.rs @@ -1,11 +1,10 @@ // modules2.rs // Make me compile! Execute `rustlings hint modules2` for hints :) -// I AM NOT DONE -mod delicious_snacks { - use self::fruits::PEAR as fruit; - use self::veggies::CUCUMBER as veggie; +pub mod delicious_snacks { + pub use self::fruits::PEAR as fruit; + pub use self::veggies::CUCUMBER as veggie; mod fruits { pub const PEAR: &'static str = "Pear"; diff --git a/exercises/test4.rs b/exercises/test4.rs index ad1f6ac..533da39 100644 --- a/exercises/test4.rs +++ b/exercises/test4.rs @@ -5,7 +5,9 @@ // Write a macro that passes the test! No hints this time, you can do it! -// I AM NOT DONE +macro_rules! my_macro { + ($str: expr) => {format!("Hello {}", $str)}; +} #[cfg(test)] mod tests {