docs: cleanup the explanation paragraphs at the start of each exercise.
This commit is contained in:
@@ -1,10 +1,13 @@
|
||||
// from_str.rs
|
||||
// This is similar to from_into.rs, but this time we'll implement `FromStr`
|
||||
// and return errors instead of falling back to a default value.
|
||||
// Additionally, upon implementing FromStr, you can use the `parse` method
|
||||
// on strings to generate an object of the implementor type.
|
||||
// You can read more about it at https://doc.rust-lang.org/std/str/trait.FromStr.html
|
||||
// Execute `rustlings hint from_str` or use the `hint` watch subcommand for a hint.
|
||||
//
|
||||
// This is similar to from_into.rs, but this time we'll implement `FromStr` and
|
||||
// return errors instead of falling back to a default value. Additionally, upon
|
||||
// implementing FromStr, you can use the `parse` method on strings to generate
|
||||
// an object of the implementor type. You can read more about it at
|
||||
// https://doc.rust-lang.org/std/str/trait.FromStr.html
|
||||
//
|
||||
// Execute `rustlings hint from_str` or use the `hint` watch subcommand for a
|
||||
// hint.
|
||||
|
||||
use std::num::ParseIntError;
|
||||
use std::str::FromStr;
|
||||
@@ -33,15 +36,18 @@ enum ParsePersonError {
|
||||
// Steps:
|
||||
// 1. If the length of the provided string is 0, an error should be returned
|
||||
// 2. Split the given string on the commas present in it
|
||||
// 3. Only 2 elements should be returned from the split, otherwise return an error
|
||||
// 3. Only 2 elements should be returned from the split, otherwise return an
|
||||
// error
|
||||
// 4. Extract the first element from the split operation and use it as the name
|
||||
// 5. Extract the other element from the split operation and parse it into a `usize` as the age
|
||||
// with something like `"4".parse::<usize>()`
|
||||
// 6. If while extracting the name and the age something goes wrong, an error should be returned
|
||||
// 5. Extract the other element from the split operation and parse it into a
|
||||
// `usize` as the age with something like `"4".parse::<usize>()`
|
||||
// 6. If while extracting the name and the age something goes wrong, an error
|
||||
// should be returned
|
||||
// If everything goes well, then return a Result of a Person object
|
||||
//
|
||||
// As an aside: `Box<dyn Error>` implements `From<&'_ str>`. This means that if you want to return a
|
||||
// string error message, you can do so via just using return `Err("my error message".into())`.
|
||||
// As an aside: `Box<dyn Error>` implements `From<&'_ str>`. This means that if
|
||||
// you want to return a string error message, you can do so via just using
|
||||
// return `Err("my error message".into())`.
|
||||
|
||||
impl FromStr for Person {
|
||||
type Err = ParsePersonError;
|
||||
|
||||
Reference in New Issue
Block a user