From 1c2e74149541e28fdd552da69d3cab865bca9ae9 Mon Sep 17 00:00:00 2001 From: 0xChasingFire <83760488+0xchasingfire@users.noreply.github.com> Date: Fri, 4 Jun 2021 11:17:24 +0800 Subject: [PATCH] macro and clippy --- exercises/clippy/clippy1.rs | 4 +--- exercises/clippy/clippy2.rs | 4 +--- exercises/conversions/from_into.rs | 1 + exercises/conversions/using_as.rs | 4 +--- exercises/macros/macros1.rs | 3 +-- exercises/macros/macros2.rs | 12 ++++++------ exercises/macros/macros3.rs | 2 +- exercises/macros/macros4.rs | 4 +--- exercises/quiz4.rs | 6 +++++- 9 files changed, 18 insertions(+), 22 deletions(-) diff --git a/exercises/clippy/clippy1.rs b/exercises/clippy/clippy1.rs index bdb5dd2..ea9c4ea 100644 --- a/exercises/clippy/clippy1.rs +++ b/exercises/clippy/clippy1.rs @@ -6,12 +6,10 @@ // check clippy's suggestions from the output to solve the exercise. // Execute `rustlings hint clippy1` for hints :) -// I AM NOT DONE - fn main() { let x = 1.2331f64; let y = 1.2332f64; - if y != x { + if (y - x).abs() > 0.0001 { println!("Success!"); } } diff --git a/exercises/clippy/clippy2.rs b/exercises/clippy/clippy2.rs index 37af9ed..4cdfbe7 100644 --- a/exercises/clippy/clippy2.rs +++ b/exercises/clippy/clippy2.rs @@ -1,12 +1,10 @@ // clippy2.rs // Make me compile! Execute `rustlings hint clippy2` for hints :) -// I AM NOT DONE - fn main() { let mut res = 42; let option = Some(12); - for x in option { + if let Some(x) = option { res += x; } println!("{}", res); diff --git a/exercises/conversions/from_into.rs b/exercises/conversions/from_into.rs index 9d84174..1e8308a 100644 --- a/exercises/conversions/from_into.rs +++ b/exercises/conversions/from_into.rs @@ -37,6 +37,7 @@ impl Default for Person { impl From<&str> for Person { fn from(s: &str) -> Person { + if s.len() == 0 { super::default()} } } diff --git a/exercises/conversions/using_as.rs b/exercises/conversions/using_as.rs index 821309e..f4a33ab 100644 --- a/exercises/conversions/using_as.rs +++ b/exercises/conversions/using_as.rs @@ -5,11 +5,9 @@ // The goal is to make sure that the division does not fail to compile // and returns the proper type. -// I AM NOT DONE - fn average(values: &[f64]) -> f64 { let total = values.iter().fold(0.0, |a, b| a + b); - total / values.len() + total / values.len() as f64 } fn main() { diff --git a/exercises/macros/macros1.rs b/exercises/macros/macros1.rs index ed0dac8..6f812d0 100644 --- a/exercises/macros/macros1.rs +++ b/exercises/macros/macros1.rs @@ -1,7 +1,6 @@ // macros1.rs // Make me compile! Execute `rustlings hint macros1` for hints :) -// I AM NOT DONE macro_rules! my_macro { () => { @@ -10,5 +9,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..e53b935 100644 --- a/exercises/macros/macros2.rs +++ b/exercises/macros/macros2.rs @@ -1,14 +1,14 @@ // macros2.rs // Make me compile! Execute `rustlings hint macros2` for hints :) -// I AM NOT DONE - -fn main() { - my_macro!(); -} - macro_rules! my_macro { () => { println!("Check out my macro!"); }; } + +fn main() { + my_macro!(); +} + + diff --git a/exercises/macros/macros3.rs b/exercises/macros/macros3.rs index 93a4311..c1ee00d 100644 --- a/exercises/macros/macros3.rs +++ b/exercises/macros/macros3.rs @@ -2,8 +2,8 @@ // Make me compile, without taking the macro out of the module! // Execute `rustlings hint macros3` for hints :) -// I AM NOT DONE +#[macro_use] mod macros { macro_rules! my_macro { () => { diff --git a/exercises/macros/macros4.rs b/exercises/macros/macros4.rs index 3a74807..5693070 100644 --- a/exercises/macros/macros4.rs +++ b/exercises/macros/macros4.rs @@ -1,12 +1,10 @@ // 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); } diff --git a/exercises/quiz4.rs b/exercises/quiz4.rs index 6c47480..3efb673 100644 --- a/exercises/quiz4.rs +++ b/exercises/quiz4.rs @@ -5,7 +5,11 @@ // Write a macro that passes the quiz! No hints this time, you can do it! -// I AM NOT DONE +macro_rules! my_macro { + ($val:expr) => { + "Hello ".to_owned() + $val + }; +} #[cfg(test)] mod tests {