1
0
Fork 0
mirror of https://github.com/notohh/rustlings.git synced 2025-07-09 17:39:16 -04:00

fix(errors5): improve exercise instructions

This commit is contained in:
Noah Cairns 2022-06-15 09:40:30 -04:00 committed by mokou
parent 582320aded
commit 5e1ca4b995
2 changed files with 20 additions and 15 deletions
exercises/error_handling

View file

@ -1,7 +1,17 @@
// errors5.rs
// This program uses a completed version of the code from errors4.
// It won't compile right now! Why?
// This program uses an altered version of the code from errors4.
// This exercise uses some concepts that we won't get to until later in the course, like `Box` and the
// `From` trait. It's not important to understand them in detail right now, but you can read ahead if you like.
// In short, this particular use case for boxes is for when you want to own a value and you care only that it is a
// type which implements a particular trait. To do so, The Box is declared as of type Box<dyn Trait> where Trait is the trait
// the compiler looks for on any value used in that context. For this exercise, that context is the potential errors
// which can be returned in a Result.
// What can we use to describe both errors? In other words, is there a trait which both errors implement?
// Execute `rustlings hint errors5` for hints!
// I AM NOT DONE
@ -11,7 +21,7 @@ use std::fmt;
use std::num::ParseIntError;
// TODO: update the return type of `main()` to make this compile.
fn main() -> Result<(), ParseIntError> {
fn main() -> Result<(), Box<dyn ???>> {
let pretend_user_input = "42";
let x: i64 = pretend_user_input.parse()?;
println!("output={:?}", PositiveNonzeroInteger::new(x)?);