[2018][rust][04] reorganize parsing code
change pqtztrnwmwkwkkysuwqqrqttwyoxrxtp
commit a352af5983f9f0bdfeb00d64b25aebe233a5a6b9
author Alpha Chen <alpha.chen@gmail.com>
date
parent pvwowkko
diff --git a/2018/rust/src/bin/day_04.rs b/2018/rust/src/bin/day_04.rs
index d29bd0a..aaeefe7 100644
--- a/2018/rust/src/bin/day_04.rs
+++ b/2018/rust/src/bin/day_04.rs
@@ -20,17 +20,6 @@ fn solve(input: &str) -> Result<String, Box<Error>> {
     Ok("".into())
 }
 
-fn parse_sleep_range(pair: Pair<Rule>) -> Range<usize> {
-    let mut sleep_range = pair.into_inner();
-    let falls_asleep: usize = parse_minute(sleep_range.next().unwrap());
-    let wakes_up: usize = parse_minute(sleep_range.next().unwrap());
-    (falls_asleep..wakes_up)
-}
-
-fn parse_minute(pair: Pair<Rule>) -> usize {
-    pair.into_inner().next().unwrap().as_str().parse().unwrap()
-}
-
 #[derive(Debug)]
 struct Record {
     guard_id: String,
@@ -57,6 +46,17 @@ impl Record {
 
         Ok(records)
     }
+
+    fn parse_sleep_range(pair: Pair<Rule>) -> Range<usize> {
+        let mut sleep_range = pair.into_inner();
+        let falls_asleep: usize = Self::parse_minute(sleep_range.next().unwrap());
+        let wakes_up: usize = Self::parse_minute(sleep_range.next().unwrap());
+        (falls_asleep..wakes_up)
+    }
+
+    fn parse_minute(pair: Pair<Rule>) -> usize {
+        pair.into_inner().next().unwrap().as_str().parse().unwrap()
+    }
 }
 
 #[test]
@@ -104,7 +104,7 @@ impl<'a> From<Pair<'a, Rule>> for Record {
             .next()
             .unwrap()
             .into_inner()
-            .map(parse_sleep_range)
+            .map(Self::parse_sleep_range)
             .collect();
 
         Record {