This commit is contained in:
matytan 2022-11-21 19:29:33 +08:00
parent 92d6fac7aa
commit 35f19d8e5e

View File

@ -25,13 +25,21 @@ impl ParsePosNonzeroError {
} }
// TODO: add another error conversion function here. // TODO: add another error conversion function here.
// fn from_parseint... // fn from_parseint...
fn from_parseint(err: ParseIntError) -> ParsePosNonzeroError {
ParsePosNonzeroError::ParseInt(err)
}
} }
fn parse_pos_nonzero(s: &str) -> Result<PositiveNonzeroInteger, ParsePosNonzeroError> { fn parse_pos_nonzero(s: &str) -> Result<PositiveNonzeroInteger, ParsePosNonzeroError> {
// TODO: change this to return an appropriate error instead of panicking // TODO: change this to return an appropriate error instead of panicking
// when `parse()` returns an error. // when `parse()` returns an error.
let x: i64 = s.parse().unwrap(); // let x: i64 = s.parse().unwrap();
PositiveNonzeroInteger::new(x).map_err(ParsePosNonzeroError::from_creation) let res = s.parse();
match res {
Ok(x) => PositiveNonzeroInteger::new(x).map_err(ParsePosNonzeroError::from_creation),
Err(err) => Err(ParsePosNonzeroError::from_parseint(err)),
}
// PositiveNonzeroInteger::new(x).map_err(ParsePosNonzeroError::from_creation)
} }
// Don't change anything below this line. // Don't change anything below this line.