Started Structs

This commit is contained in:
Max Boewer 2022-12-06 08:33:57 +01:00
parent f45c56d646
commit 280a9de4c6
2 changed files with 20 additions and 7 deletions

View File

@ -2,13 +2,14 @@
// Address all the TODOs to make the tests pass!
// Execute `rustlings hint structs1` or use the `hint` watch subcommand for a hint.
// I AM NOT DONE
struct ColorClassicStruct {
// TODO: Something goes here
red: i16,
green: i16,
blue: i16,
}
struct ColorTupleStruct(/* TODO: Something goes here */);
struct ColorTupleStruct(u8, u8, u8);
#[derive(Debug)]
struct UnitLikeStruct;
@ -20,7 +21,11 @@ mod tests {
#[test]
fn classic_c_structs() {
// TODO: Instantiate a classic c struct!
// let green =
let green = ColorClassicStruct{
red: 0,
green: 255,
blue: 0
};
assert_eq!(green.red, 0);
assert_eq!(green.green, 255);
@ -30,7 +35,7 @@ mod tests {
#[test]
fn tuple_structs() {
// TODO: Instantiate a tuple struct!
// let green =
let green = ColorTupleStruct(0, 255, 0);
assert_eq!(green.0, 0);
assert_eq!(green.1, 255);
@ -40,7 +45,7 @@ mod tests {
#[test]
fn unit_structs() {
// TODO: Instantiate a unit-like struct!
// let unit_like_struct =
let unit_like_struct = UnitLikeStruct;
let message = format!("{:?}s are fun!", unit_like_struct);
assert_eq!(message, "UnitLikeStructs are fun!");

View File

@ -35,7 +35,15 @@ mod tests {
fn your_order() {
let order_template = create_order_template();
// TODO: Create your own order using the update syntax and template above!
// let your_order =
let your_order = Order{
name : String::from("Hacker in Rust"),
year : order_template.year,
made_by_phone : order_template.made_by_phone,
made_by_mobile : order_template.made_by_mobile,
made_by_email: order_template.made_by_email,
item_number : order_template.item_number,
count : 1,
};
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);