Skip to content

Commit

Permalink
fix(try_from_into, from_str): hints for dyn Error
Browse files Browse the repository at this point in the history
Add hints about how to return the correct type for functions that
return `Result<_, Box<dyn Error>`. Some feedback from Discord suggests
that people run into trouble with that.
  • Loading branch information
tlyu committed May 15, 2021
1 parent dbb2624 commit 11d2cf0
Showing 1 changed file with 17 additions and 2 deletions.
19 changes: 17 additions & 2 deletions info.toml
Original file line number Diff line number Diff line change
Expand Up @@ -893,7 +893,19 @@ path = "exercises/conversions/try_from_into.rs"
mode = "test"
hint = """
Follow the steps provided right before the `TryFrom` implementation.
You can also use the example at https://doc.rust-lang.org/std/convert/trait.TryFrom.html"""
You can also use the example at https://doc.rust-lang.org/std/convert/trait.TryFrom.html
You might want to look back at the exercise errorsn (or its hints) to remind
yourself about how `Box<dyn Error>` works.
If you're trying to return a string as an error, note that neither `str`
nor `String` implements `error::Error`. However, there is an implementation
of `From<&str>` for `Box<dyn Error>`. This means you can use `.into()` or
the `?` operator to convert your string into the correct error type.
If you're having trouble with using the `?` operator to convert an error string,
recall that `?` works to convert `Err(something)` into the appropriate error
type for returning from the function."""

[[exercises]]
name = "as_ref_mut"
Expand All @@ -909,4 +921,7 @@ mode = "test"
hint = """
The implementation of FromStr should return an Ok with a Person object,
or an Err with an error if the string is not valid.
This is almost like the `try_from_into` exercise."""
This is almost like the `try_from_into` exercise.
If you're having trouble with returning the correct error type, see the
hints for try_from_into."""

0 comments on commit 11d2cf0

Please sign in to comment.