Skip to content

Commit

Permalink
feat: Added exercise for struct update syntax
Browse files Browse the repository at this point in the history
  • Loading branch information
vyaslav committed Oct 21, 2019
1 parent e6161a6 commit 1c4c876
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 5 deletions.
45 changes: 45 additions & 0 deletions exercises/structs/structs2.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
// structs2.rs
// Address all the TODOs to make the tests pass!
// No hints, just do it!

#[derive(Debug)]
struct Order {
name: String,
year: u32,
made_by_phone: bool,
made_by_mobile: bool,
made_by_email: bool,
item_number: u32,
count: u32,
}

fn create_order_template() -> Order {
Order {
name: String::from("Bob"),
year: 2019,
made_by_phone: false,
made_by_mobile: false,
made_by_email: true,
item_number: 123,
count: 0,
}
}

#[cfg(test)]
mod tests {
use super::*;

#[test]
fn your_order() {
let order_template = create_order_template();
// TODO: Create your own order using the update syntax and template above!
// let your_order =
assert_eq!(your_order.name, "Hacker in Rust");
assert_eq!(your_order.year, order_template.year);
assert_eq!(your_order.made_by_phone, order_template.made_by_phone);
assert_eq!(your_order.made_by_mobile, order_template.made_by_mobile);
assert_eq!(your_order.made_by_email, order_template.made_by_email);
assert_eq!(your_order.item_number, order_template.item_number);
assert_eq!(your_order.count, 1);
}
}
4 changes: 4 additions & 0 deletions info.toml
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,10 @@ mode = "compile"
path = "exercises/structs/structs1.rs"
mode = "test"

[[exercises]]
path = "exercises/structs/structs2.rs"
mode = "test"

# TESTS

[[exercises]]
Expand Down
6 changes: 1 addition & 5 deletions src/verify.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,7 @@ fn compile_only(exercise: &Exercise) -> Result<(), ()> {
let compile_output = exercise.compile();
progress_bar.finish_and_clear();
if compile_output.status.success() {
let formatstr = format!(
"{} Successfully compiled {}!",
Emoji("✅", "✓"),
exercise
);
let formatstr = format!("{} Successfully compiled {}!", Emoji("✅", "✓"), exercise);
println!("{}", style(formatstr).green());
exercise.clean();
Ok(())
Expand Down

0 comments on commit 1c4c876

Please sign in to comment.