[Rust] with iterators and pattern matching
With\n- RangeInclusive operator\n- Pattern guard expression (MatchArmGuard)\n\nrust\nimpl Solution {\n    pub fn fizz_buzz(n: i32) -> Vec<String> {\n        (1.
With\n- [RangeInclusive operator](https://doc.rust-lang.org/stable/std/ops/struct.RangeInclusive.html)\n- Pattern guard expression (MatchArmGuard)\n\n```rust\nimpl Solution {\n    pub fn fizz_buzz(n: i32) -> Vec<String> {\n        (1..=n).map(|x| { // \n            match x {\n                x if x % 15 == 0 => String::from("FizzBuzz"),\n                x if x % 3 == 0 => String::from("Fizz"),\n                x if x % 5 == 0 => String::from("Buzz"),\n                _ => x.to_string(),\n            }\n        }).collect()\n    }\n}\n```\n\n### Another more clear solution\n\n```rust\nimpl Solution {\n    pub fn fizz_buzz(n: i32) -> Vec<String> {\n        (1..=n).map(|x| {\n            let by3 = x % 3 == 0;\n            let by5 = x % 5 == 0;\n            match (by3, by5) {\n                (true, true) => "FizzBuzz".into(),\n                (true, false) => "Fizz".into(),\n                (false, true) => "Buzz".into(),\n                (false, false) => x.to_string(),\n            }\n        }).collect()\n    }\n}\n```
['Rust']