File tree Expand file tree Collapse file tree 2 files changed +20
-5
lines changed
Expand file tree Collapse file tree 2 files changed +20
-5
lines changed Original file line number Diff line number Diff line change @@ -53,12 +53,9 @@ impl Day05 {
5353 ranges_str
5454 . lines ( )
5555 . map ( |line| {
56- let ( start, end) = line. split_once ( "-" ) . unwrap ( ) ;
57-
58- let start = start. parse :: < isize > ( ) . unwrap ( ) ;
59- let end = end. parse :: < isize > ( ) . unwrap ( ) ;
56+ let tuple = line. split_once ( "-" ) . unwrap ( ) ;
6057
61- Range :: new ( start , end ) . unwrap ( )
58+ tuple . try_into ( ) . unwrap ( )
6259 } )
6360 . collect_vec ( )
6461 }
Original file line number Diff line number Diff line change @@ -159,6 +159,24 @@ impl From<RangeInclusive<isize>> for Range {
159159 }
160160}
161161
162+ impl TryFrom < ( & str , & str ) > for Range {
163+ type Error = String ;
164+
165+ fn try_from ( value : ( & str , & str ) ) -> Result < Self , Self :: Error > {
166+ let start = value
167+ . 0
168+ . parse :: < isize > ( )
169+ . map_err ( |e| format ! ( "Error parsing start value: {}" , e) ) ?;
170+
171+ let end = value
172+ . 1
173+ . parse :: < isize > ( )
174+ . map_err ( |e| format ! ( "Error parsing end value: {}" , e) ) ?;
175+
176+ Self :: new ( start, end)
177+ }
178+ }
179+
162180#[ cfg( test) ]
163181mod tests {
164182 use crate :: utils:: range:: Range ;
You can’t perform that action at this time.
0 commit comments