rustlings/src/main.rs
2018-05-22 22:23:22 +02:00

53 lines
1.3 KiB
Rust

#[macro_use]
extern crate quicli;
extern crate ansi_term;
use ansi_term::Color::{Green, Red, Yellow};
use quicli::prelude::*;
use std::fmt::Display;
pub fn verify<T: PartialEq + Display>(left: T, right: T) {
if left == right {
println!("{} {} == {}", Green.bold().paint("PASS"), left, right);
} else {
println!(
"{} You submitted {}, but that's not correct!",
Red.bold().paint("FAIL"),
left
);
println!(" Please correct your code to make this test pass!");
}
}
pub fn verify_easy<T: PartialEq + Display>(left: T, right: T) {
if left == right {
println!("{} {} == {}", Green.bold().paint("PASS"), left, right);
} else {
println!(
"{} You submitted {}, but that's not correct!",
Red.bold().paint("FAIL"),
left
);
println!(" Expected: {}", right);
println!(" Please correct your code to make this test pass!");
}
}
pub fn title(s: &str) {
println!("{} {}", Yellow.bold().paint("RUN"), s);
}
mod about_variables;
#[derive(Debug, StructOpt)]
struct Cli {
exercise: Option<String>,
}
main!(|args: Cli| if let Some(e) = args.exercise {
println!("selected {}", e);
} else {
println!("Welcome to {}!\n", Yellow.paint("Rustlings"));
about_variables::exec();
});