use macros
This commit is contained in:
parent
595a91df55
commit
97efff760d
|
@ -1,5 +1,4 @@
|
||||||
#[allow(dead_code)]
|
#[allow(dead_code)]
|
||||||
mod about_variables {
|
|
||||||
pub fn guess_this () -> i32 {
|
pub fn guess_this () -> i32 {
|
||||||
let one = 5;
|
let one = 5;
|
||||||
let two = 7;
|
let two = 7;
|
||||||
|
@ -7,14 +6,15 @@ mod about_variables {
|
||||||
let result = (one + two) / three;
|
let result = (one + two) / three;
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(test)]
|
|
||||||
mod tests {
|
mod tests {
|
||||||
use super::about_variables::*;
|
use super::*;
|
||||||
|
|
||||||
#[test]
|
pub fn test_complicated () {
|
||||||
fn test_complicated () {
|
assert_eq!(1, guess_this());
|
||||||
assert_eq!(___, guess_this());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn exec () {
|
||||||
|
tests::test_complicated();
|
||||||
|
}
|
||||||
|
|
39
src/main.rs
39
src/main.rs
|
@ -2,7 +2,34 @@
|
||||||
extern crate ansi_term;
|
extern crate ansi_term;
|
||||||
|
|
||||||
use quicli::prelude::*;
|
use quicli::prelude::*;
|
||||||
use ansi_term::Colour::{Red, Yellow};
|
use ansi_term::Colour::{Red, Yellow, Green};
|
||||||
|
|
||||||
|
macro_rules! verify {
|
||||||
|
( $str:expr, $left:expr, $right:expr ) => {
|
||||||
|
if ($left == $right) {
|
||||||
|
println!("{} {}", Green.bold().paint("PASS"), $str);
|
||||||
|
} else {
|
||||||
|
println!("{} {}", Red.bold().paint("FAIL"), $str);
|
||||||
|
println!("\tYou submitted {}, but that's not correct!", $left);
|
||||||
|
println!("\tPlease correct your code to make this test pass!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
macro_rules! verify_easy {
|
||||||
|
( $str:expr, $left:expr, $right:expr ) => {
|
||||||
|
if ($left == $right) {
|
||||||
|
println!("{} {}", Green.bold().paint("PASS"), $str);
|
||||||
|
} else {
|
||||||
|
println!("{} {}", Red.bold().paint("FAIL"), $str);
|
||||||
|
println!("\tExpected: {}", $right);
|
||||||
|
println!("\tGot: {}", $left);
|
||||||
|
println!("\tPlease correct your code to make this test pass!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
mod about_variables;
|
||||||
|
|
||||||
#[derive(Debug, StructOpt)]
|
#[derive(Debug, StructOpt)]
|
||||||
struct Cli {
|
struct Cli {
|
||||||
|
@ -10,12 +37,10 @@ struct Cli {
|
||||||
}
|
}
|
||||||
|
|
||||||
main!(|args: Cli| {
|
main!(|args: Cli| {
|
||||||
match args.exercise {
|
if let Some(e) = args.exercise {
|
||||||
Some(e) => {
|
|
||||||
println!("selected {}", e);
|
println!("selected {}", e);
|
||||||
}
|
} else {
|
||||||
None => {
|
println!("Welcome to {}", Yellow.paint("rustlings"));
|
||||||
println!("Welcome to {}", Yellow.paint("Rustlings"));
|
verify!("One equals one", 1, 2);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue