diff options
| author | Taylor Yu <tlyu@mit.edu> | 2021-04-04 18:43:38 -0500 |
|---|---|---|
| committer | Taylor Yu <tlyu@mit.edu> | 2021-04-04 18:56:10 -0500 |
| commit | c3e7b831786c9172ed8bd5d150f3c432f242fba9 (patch) | |
| tree | 30a5b628918f7aae5dfb4cd8ea5b7c5db0e3d4fa | |
| parent | 2e93a588e0abe8badb7eafafb9e7d073c2be5df8 (diff) | |
fix: use trait objects for from_str
Use `Box<dyn error::Error>` to allow solutions to use `?` to propagate
errors.
| -rw-r--r-- | exercises/conversions/from_str.rs | 3 | ||||
| -rw-r--r-- | info.toml | 2 |
2 files changed, 3 insertions, 2 deletions
diff --git a/exercises/conversions/from_str.rs b/exercises/conversions/from_str.rs index 41fccd7..4beebac 100644 --- a/exercises/conversions/from_str.rs +++ b/exercises/conversions/from_str.rs @@ -2,6 +2,7 @@ // 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 +use std::error; use std::str::FromStr; #[derive(Debug)] @@ -23,7 +24,7 @@ struct Person { // If everything goes well, then return a Result of a Person object impl FromStr for Person { - type Err = String; + type Err = Box<dyn error::Error>; fn from_str(s: &str) -> Result<Person, Self::Err> { } } @@ -884,5 +884,5 @@ path = "exercises/conversions/from_str.rs" mode = "test" hint = """ The implementation of FromStr should return an Ok with a Person object, -or an Err with a string if the string is not valid. +or an Err with an error if the string is not valid. This is almost like the `try_from_into` exercise.""" |
