Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use std::num::ParseIntError;
- pub enum ParseError {
- Invalid,
- ParseIntError(ParseIntError),
- }
- impl From<ParseIntError> for ParseError {
- fn from(err: ParseIntError) -> Self {
- ParseError::ParseIntError(err)
- }
- }
- fn parse(s: &str) -> Result<(u32, u32), ParseError> {
- let mut parts = s.split(':');
- let x = parts.next()
- .ok_or(ParseError::Invalid)
- .and_then(|x| x.parse::<u32>().map_err(From::from) )?;
- let y = parts.next()
- .ok_or(ParseError::Invalid)
- .and_then(|x| x.parse::<u32>().map_err(From::from) )?;
- Ok((x, y))
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement