diff --git a/exercises/conversions/as_ref_mut.rs b/exercises/conversions/as_ref_mut.rs index 963c0f2..84f4a60 100644 --- a/exercises/conversions/as_ref_mut.rs +++ b/exercises/conversions/as_ref_mut.rs @@ -3,6 +3,7 @@ // and https://doc.rust-lang.org/std/convert/trait.AsMut.html, respectively. // I AM NOT DONE + // Obtain the number of bytes (not characters) in the given argument // Add the AsRef trait appropriately as a trait bound fn byte_counter(arg: T) -> usize { diff --git a/exercises/conversions/from_into.rs b/exercises/conversions/from_into.rs index 8fb9eb0..4f4da53 100644 --- a/exercises/conversions/from_into.rs +++ b/exercises/conversions/from_into.rs @@ -18,7 +18,6 @@ impl Default for Person { } } -// I AM NOT DONE // Your task is to complete this implementation // in order for the line `let p = Person::from("Mark,20")` to compile // Please note that you'll need to parse the age component into a `usize` @@ -33,6 +32,9 @@ impl Default for Person { // 5. Extract the other element from the split operation and parse it into a `usize` as the age // If while parsing the age, something goes wrong, then return the default of Person // Otherwise, then return an instantiated Person object with the results + +// I AM NOT DONE + impl From<&str> for Person { fn from(s: &str) -> Person { } diff --git a/exercises/conversions/using_as.rs b/exercises/conversions/using_as.rs index 54f9651..922abae 100644 --- a/exercises/conversions/using_as.rs +++ b/exercises/conversions/using_as.rs @@ -1,9 +1,11 @@ // Type casting in Rust is done via the usage of the `as` operator. // Please note that the `as` operator is not only used when type casting. // It also helps with renaming imports. +// +// The goal is to make sure that the division does not fail to compile // I AM NOT DONE -// The goal is to make sure that the division does not fail to compile + fn average(values: &[f64]) -> f64 { let total = values .iter() @@ -14,4 +16,4 @@ fn average(values: &[f64]) -> f64 { fn main() { let values = [3.5, 0.3, 13.0, 11.7]; println!("{}", average(&values)); -} \ No newline at end of file +} diff --git a/exercises/generics/generics1.rs b/exercises/generics/generics1.rs index d075a4d..1e6ae9d 100644 --- a/exercises/generics/generics1.rs +++ b/exercises/generics/generics1.rs @@ -1,4 +1,4 @@ -// This shopping list program isn't compiling! +// This shopping list program isn't compiling! // Use your knowledge of generics to fix it. // I AM NOT DONE diff --git a/exercises/generics/generics2.rs b/exercises/generics/generics2.rs index 23025aa..20c2127 100644 --- a/exercises/generics/generics2.rs +++ b/exercises/generics/generics2.rs @@ -2,6 +2,7 @@ // Rewrite it using generics so that it supports wrapping ANY type. // I AM NOT DONE + struct Wrapper { value: u32 } @@ -18,11 +19,11 @@ mod tests { #[test] fn store_u32_in_wrapper() { - assert_eq!(Wrapper::new(42).value, 42); + assert_eq!(Wrapper::new(42).value, 42); } #[test] fn store_str_in_wrapper() { assert_eq!(Wrapper::new("Foo").value, "Foo"); } -} \ No newline at end of file +} diff --git a/exercises/generics/generics3.rs b/exercises/generics/generics3.rs index c76425c..760028e 100644 --- a/exercises/generics/generics3.rs +++ b/exercises/generics/generics3.rs @@ -1,13 +1,14 @@ // An imaginary magical school has a new report card generation system written in Rust! -// Currently the system only supports creating report cards where the student's grade -// is represented numerically (e.g. 1.0 -> 5.5). -// However, the school also issues alphabetical grades (A+ -> F-) and needs +// Currently the system only supports creating report cards where the student's grade +// is represented numerically (e.g. 1.0 -> 5.5). +// However, the school also issues alphabetical grades (A+ -> F-) and needs // to be able to print both types of report card! -// Make the necessary code changes to support alphabetical report cards, thereby making +// Make the necessary code changes to support alphabetical report cards, thereby making // the second test pass. // I AM NOT DONE + pub struct ReportCard { pub grade: f32, pub student_name: String, @@ -16,7 +17,7 @@ pub struct ReportCard { impl ReportCard { pub fn print(&self) -> String { - format!("{} ({}) - achieved a grade of {}", + format!("{} ({}) - achieved a grade of {}", &self.student_name, &self.student_age, &self.grade) } } @@ -28,8 +29,8 @@ mod tests { #[test] fn generate_numeric_report_card() { let report_card = ReportCard { - grade: 2.1, - student_name: "Tom Wriggle".to_string(), + grade: 2.1, + student_name: "Tom Wriggle".to_string(), student_age: 12, }; assert_eq!(report_card.print(), "Tom Wriggle (12) - achieved a grade of 2.1"); @@ -39,10 +40,10 @@ mod tests { fn generate_alphabetic_report_card() { // TODO: Make sure to change the grade here after you finish the exercise. let report_card = ReportCard { - grade: 2.1, - student_name: "Gary Plotter".to_string(), + grade: 2.1, + student_name: "Gary Plotter".to_string(), student_age: 11, }; assert_eq!(report_card.print(), "Gary Plotter (11) - achieved a grade of A+"); } -} \ No newline at end of file +} diff --git a/exercises/primitive_types/primitive_types3.rs b/exercises/primitive_types/primitive_types3.rs index dfd6351..aaa518b 100644 --- a/exercises/primitive_types/primitive_types3.rs +++ b/exercises/primitive_types/primitive_types3.rs @@ -1,5 +1,5 @@ // primitive_types3.rs -// Create an array with at least 100 elements in it where the ??? is. +// Create an array with at least 100 elements in it where the ??? is. // Execute `rustlings hint primitive_types3` for hints! // I AM NOT DONE diff --git a/exercises/structs/structs3.rs b/exercises/structs/structs3.rs index 5503ce1..883c803 100644 --- a/exercises/structs/structs3.rs +++ b/exercises/structs/structs3.rs @@ -47,7 +47,7 @@ mod tests { fn create_international_package() { let sender_country = String::from("Spain"); let recipient_country = String::from("Russia"); - + let package = Package::new(sender_country, recipient_country, 1200); assert!(package.is_international()); @@ -59,9 +59,9 @@ mod tests { let recipient_country = String::from("Spain"); let cents_per_kg = ???; - + let package = Package::new(sender_country, recipient_country, 1500); - + assert_eq!(package.get_fees(cents_per_kg), 4500); } } diff --git a/exercises/traits/traits1.rs b/exercises/traits/traits1.rs index 8253ef8..2ef9e11 100644 --- a/exercises/traits/traits1.rs +++ b/exercises/traits/traits1.rs @@ -1,21 +1,21 @@ // traits1.rs // Time to implement some traits! -// +// // Your task is to implement the trait // `AppendBar' for the type `String'. -// +// // The trait AppendBar has only one function, // which appends "Bar" to any object // implementing this trait. // I AM NOT DONE + trait AppendBar { fn append_bar(self) -> Self; } impl AppendBar for String { //Add your code here - } fn main() { @@ -40,5 +40,4 @@ mod tests { String::from("BarBar") ); } - -} \ No newline at end of file +} diff --git a/exercises/traits/traits2.rs b/exercises/traits/traits2.rs index 7f5014d..b9a13a4 100644 --- a/exercises/traits/traits2.rs +++ b/exercises/traits/traits2.rs @@ -1,12 +1,12 @@ // traits2.rs -// +// // Your task is to implement the trait // `AppendBar' for a vector of strings. -// +// // To implement this trait, consider for // a moment what it means to 'append "Bar"' // to a vector of strings. -// +// // No boiler plate code this time, // you can do this! @@ -31,5 +31,4 @@ mod tests { assert_eq!(foo.pop().unwrap(), String::from("Bar")); assert_eq!(foo.pop().unwrap(), String::from("Foo")); } - }