Skip to content

Commit 287b05c

Browse files
committed
Get rid of most of the new_from_parseerror calls
1 parent e272d26 commit 287b05c

File tree

25 files changed

+101
-125
lines changed

25 files changed

+101
-125
lines changed

src/aoc/y2018/day01.rs

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,23 +11,17 @@ use std::collections::HashSet;
1111

1212
use itertools::Itertools;
1313

14-
use crate::AoCError;
15-
1614
pub fn part_1(data: crate::DataIn) -> crate::AoCResult<String> {
1715
let ret: i64 = data
1816
.map(|line| line.parse())
19-
.try_collect::<_, Vec<i64>, _>()
20-
.map_err(AoCError::new_from_parseerror)?
17+
.try_collect::<_, Vec<i64>, _>()?
2118
.into_iter()
2219
.sum();
2320
Ok(ret.to_string())
2421
}
2522

2623
pub fn part_2(data: crate::DataIn) -> crate::AoCResult<String> {
27-
let changes: Vec<i64> = data
28-
.map(|line| line.parse())
29-
.try_collect()
30-
.map_err(AoCError::new_from_parseerror)?;
24+
let changes: Vec<i64> = data.map(|line| line.parse()).try_collect()?;
3125

3226
let mut seen = HashSet::with_capacity(changes.len());
3327
let mut current = 0;

src/aoc/y2018/day03.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,10 @@ impl FromStr for Claim {
3434
.ok_or_else(|| AoCError::new(format!("input {s} does not match regex")))?;
3535

3636
Ok(Self {
37-
id: matches[1].parse().map_err(AoCError::new_from_parseerror)?,
38-
top_left: matches[2].parse().map_err(AoCError::new_from_parseerror)?,
39-
width: matches[3].parse().map_err(AoCError::new_from_parseerror)?,
40-
height: matches[4].parse().map_err(AoCError::new_from_parseerror)?,
37+
id: matches[1].parse()?,
38+
top_left: matches[2].parse()?,
39+
width: matches[3].parse()?,
40+
height: matches[4].parse()?,
4141
})
4242
}
4343
}

src/aoc/y2018/day04.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,16 +38,16 @@ fn parse_guards(data: crate::DataIn) -> AoCResult<Vec<GuardData>> {
3838
.ok_or_else(|| AoCError::new(format!("input {line} does not match regex")))?;
3939

4040
if matches[2].starts_with("Guard") {
41-
current_guard_id = matches[3].parse().map_err(AoCError::new_from_parseerror)?;
41+
current_guard_id = matches[3].parse()?;
4242
continue;
4343
} else if &matches[2] == "falls asleep" {
44-
let ret = slept_at.replace(matches[1].parse().map_err(AoCError::new_from_parseerror)?);
44+
let ret = slept_at.replace(matches[1].parse()?);
4545
assert!(ret.is_none(), "fell asleep twice?");
4646
continue;
4747
}
4848
let mins = guards.entry(current_guard_id).or_insert([0; 60]);
4949
let slept_at = slept_at.take().expect("woke up twice?");
50-
let woke_at = matches[1].parse().map_err(AoCError::new_from_parseerror)?;
50+
let woke_at = matches[1].parse()?;
5151
for min in &mut mins[slept_at..woke_at] {
5252
*min += 1;
5353
}

src/aoc/y2018/day08.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,7 @@ pub fn part_1(mut data: crate::DataIn) -> crate::AoCResult<String> {
7070
.unwrap()
7171
.split(' ')
7272
.map(|s| s.parse())
73-
.try_collect()
74-
.map_err(AoCError::new_from_parseerror)?;
73+
.try_collect()?;
7574
let root_node = Node::new(&mut numbers.into_iter())?;
7675
let ret = root_node.part_1_sum();
7776
Ok(ret.to_string())
@@ -83,8 +82,7 @@ pub fn part_2(mut data: crate::DataIn) -> crate::AoCResult<String> {
8382
.unwrap()
8483
.split(' ')
8584
.map(|s| s.parse())
86-
.try_collect()
87-
.map_err(AoCError::new_from_parseerror)?;
85+
.try_collect()?;
8886
let root_node = Node::new(&mut numbers.into_iter())?;
8987
let ret = root_node.part_2_sum();
9088
Ok(ret.to_string())

src/aoc/y2018/day11.rs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
use itertools::Itertools;
1111

12-
use crate::{AoCError, Coord2D};
12+
use crate::Coord2D;
1313

1414
fn power_level(coord: Coord2D, serial: i64) -> i32 {
1515
let x: i64 = coord.x.into();
@@ -21,11 +21,7 @@ fn power_level(coord: Coord2D, serial: i64) -> i32 {
2121
}
2222

2323
pub fn part_1(mut data: crate::DataIn) -> crate::AoCResult<String> {
24-
let serial = data
25-
.next()
26-
.unwrap()
27-
.parse()
28-
.map_err(AoCError::new_from_parseerror)?;
24+
let serial = data.next().unwrap().parse()?;
2925

3026
let to_check = 1..=(300 - 3);
3127
let to_glom = 0_i32..3;

src/aoc/y2019/day12.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,9 @@ impl FromStr for Moon {
8484

8585
Ok(Moon {
8686
pos: Coord3D {
87-
x: matches[1].parse().map_err(AoCError::new_from_parseerror)?,
88-
y: matches[2].parse().map_err(AoCError::new_from_parseerror)?,
89-
z: matches[3].parse().map_err(AoCError::new_from_parseerror)?,
87+
x: matches[1].parse()?,
88+
y: matches[2].parse()?,
89+
z: matches[3].parse()?,
9090
},
9191
vel: Coord3D { x: 0, y: 0, z: 0 },
9292
})

src/aoc/y2021/day22.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,14 +49,14 @@ impl RebootStep {
4949
Ok(Self {
5050
state: CubeState::parse(&matches[1])?,
5151
min: Coord3D {
52-
x: matches[2].parse().map_err(AoCError::new_from_parseerror)?,
53-
y: matches[4].parse().map_err(AoCError::new_from_parseerror)?,
54-
z: matches[6].parse().map_err(AoCError::new_from_parseerror)?,
52+
x: matches[2].parse()?,
53+
y: matches[4].parse()?,
54+
z: matches[6].parse()?,
5555
},
5656
max: Coord3D {
57-
x: matches[3].parse().map_err(AoCError::new_from_parseerror)?,
58-
y: matches[5].parse().map_err(AoCError::new_from_parseerror)?,
59-
z: matches[7].parse().map_err(AoCError::new_from_parseerror)?,
57+
x: matches[3].parse()?,
58+
y: matches[5].parse()?,
59+
z: matches[7].parse()?,
6060
},
6161
})
6262
}

src/aoc/y2022/day14.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ use std::fmt::Display;
1212

1313
use itertools::Itertools;
1414

15-
use crate::{CommonGrid, Coord2D, Coordinate, Direction, Grid, InfGrid};
15+
use crate::{AoCError, CommonGrid, Coord2D, Coordinate, Direction, Grid, InfGrid};
1616

1717
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
1818
enum GridData {
@@ -84,7 +84,7 @@ pub fn part_1(data: crate::DataIn) -> crate::AoCResult<String> {
8484
let mut rocks: Vec<Vec<Coord2D>> = data
8585
.map(|line| {
8686
line.split(" -> ")
87-
.map(|coord| {
87+
.map(|coord| -> Result<_, AoCError> {
8888
let coord: Coord2D = coord.parse()?;
8989
min = min.get_min(&coord);
9090
max = max.get_max(&coord);

src/aoc/y2023/day05.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ impl Mapping {
7979

8080
let (dest, source, count) = line
8181
.splitn(3, ' ')
82-
.map(|num| num.parse().map_err(AoCError::new_from_parseerror))
82+
.map(|num| num.parse())
8383
.collect::<Result<Vec<u64>, _>>()?
8484
.into_iter()
8585
.collect_tuple()
@@ -130,7 +130,7 @@ impl Mapping {
130130

131131
let (dest, source, count) = line
132132
.splitn(3, ' ')
133-
.map(|num| num.parse().map_err(AoCError::new_from_parseerror))
133+
.map(|num| num.parse())
134134
.collect::<Result<Vec<u64>, _>>()?
135135
.into_iter()
136136
.collect_tuple()

src/aoc/y2023/day07.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ impl FromStr for Hand {
164164
Ok(Hand {
165165
kind: HandType::new_from_cards(&cards),
166166
cards,
167-
bid: bid.parse().map_err(AoCError::new_from_parseerror)?,
167+
bid: bid.parse()?,
168168
})
169169
}
170170
}

0 commit comments

Comments
 (0)