diff options
| author | Josh Kingsley <josh@joshkingsley.me> | 2025-12-01 15:04:35 +0200 |
|---|---|---|
| committer | Josh Kingsley <josh@joshkingsley.me> | 2025-12-01 15:04:35 +0200 |
| commit | 6753162def55a76212fed9375c34e86ccda5982b (patch) | |
| tree | 94f6274b22312221c53e7990b86c82e29fdcf92b /day1/src | |
| parent | 646145dd10b3a9549f82b237ee46726d728d3631 (diff) | |
Tidy error handling
Diffstat (limited to 'day1/src')
| -rw-r--r-- | day1/src/main.rs | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/day1/src/main.rs b/day1/src/main.rs index 778fc6d..2849be2 100644 --- a/day1/src/main.rs +++ b/day1/src/main.rs @@ -12,17 +12,16 @@ impl FromStr for Rotation { type Err = ParseRotationError; fn from_str(s: &str) -> Result<Self, Self::Err> { + let err = || ParseRotationError(s.into()); + let mut chars = s.chars(); - let lr = chars.next().ok_or_else(|| ParseRotationError(s.into()))?; - let n: u16 = chars - .collect::<String>() - .parse() - .map_err(|_| ParseRotationError(s.into()))?; + let lr = chars.next().ok_or_else(err)?; + let n: u16 = chars.collect::<String>().parse().map_err(|_| err())?; match lr { 'L' => Ok(Self::Left(n)), 'R' => Ok(Self::Right(n)), - _ => Err(ParseRotationError(s.into())), + _ => Err(err()), } } } |
