Complete structs section

This commit is contained in:
Paul Czeresko 2019-07-21 10:54:47 -04:00
parent 46dd23f067
commit 7c71a8ae58

View file

@ -1,11 +1,12 @@
// structs1.rs // structs1.rs
// Address all the TODOs to make the tests pass! // Address all the TODOs to make the tests pass!
struct ColorClassicStruct { struct ColorClassicStruct<'a> {
// TODO: Something goes here name: &'a str,
hex: &'a str,
} }
struct ColorTupleStruct(/* TODO: Something goes here */); struct ColorTupleStruct<'a>(&'a str, &'a str);
#[derive(Debug)] #[derive(Debug)]
struct UnitStruct; struct UnitStruct;
@ -16,8 +17,9 @@ mod tests {
#[test] #[test]
fn classic_c_structs() { fn classic_c_structs() {
// TODO: Instantiate a classic c struct! let name = "green";
// let green = let hex = "#00FF00";
let green = ColorClassicStruct { name, hex };
assert_eq!(green.name, "green"); assert_eq!(green.name, "green");
assert_eq!(green.hex, "#00FF00"); assert_eq!(green.hex, "#00FF00");
@ -25,18 +27,17 @@ mod tests {
#[test] #[test]
fn tuple_structs() { fn tuple_structs() {
// TODO: Instantiate a tuple struct! let name = "green";
let hex = "#00FF00";
let green = ColorTupleStruct(name, hex);
// For more fun, use the field initialization shorthand. // For more fun, use the field initialization shorthand.
// let green =
assert_eq!(green.0, "green"); assert_eq!(green.0, "green");
assert_eq!(green.1, "#00FF00"); assert_eq!(green.1, "#00FF00");
} }
#[test] #[test]
fn unit_structs() { fn unit_structs() {
// TODO: Instantiate a unit struct! let unit_struct = UnitStruct;
// let unit_struct =
let message = format!("{:?}s are fun!", unit_struct); let message = format!("{:?}s are fun!", unit_struct);
assert_eq!(message, "UnitStructs are fun!"); assert_eq!(message, "UnitStructs are fun!");