From e4ab20df208ed199a6582f82d436a0ca2a98060f Mon Sep 17 00:00:00 2001
From: Diego Barrios Romero <eldruin@gmail.com>
Date: Sun, 28 Oct 2018 18:17:05 +0100
Subject: [PATCH] Extract hour conversion

---
 src/ds323x/datetime.rs | 25 ++++++++++++-------------
 1 file changed, 12 insertions(+), 13 deletions(-)

diff --git a/src/ds323x/datetime.rs b/src/ds323x/datetime.rs
index 0bca5d1..0254208 100644
--- a/src/ds323x/datetime.rs
+++ b/src/ds323x/datetime.rs
@@ -32,19 +32,7 @@ where
     /// Read the hours.
     pub fn get_hours(&mut self) -> Result<Hours, Error<E>> {
         let data = self.iface.read_register(Register::HOURS)?;
-        self.get_hours_from_register(data)
-    }
-
-    fn get_hours_from_register(&self, data: u8) -> Result<Hours, Error<E>> {
-        if is_24h_format(data) {
-            Ok(Hours::H24(packed_bcd_to_decimal(data & !BitFlags::H24_H12)))
-        }
-        else if is_am(data) {
-            Ok(Hours::AM(packed_bcd_to_decimal(data & !(BitFlags::H24_H12 | BitFlags::AM_PM))))
-        }
-        else {
-            Ok(Hours::PM(packed_bcd_to_decimal(data & !(BitFlags::H24_H12 | BitFlags::AM_PM))))
-        }
+        Ok(hours_from_register(data))
     }
 
     /// Read the day of the week [1-7].
@@ -185,6 +173,17 @@ where
     }
 }
 
+fn hours_from_register(data: u8) -> Hours {
+    if is_24h_format(data) {
+        Hours::H24(packed_bcd_to_decimal(data & !BitFlags::H24_H12))
+    }
+    else if is_am(data) {
+        Hours::AM(packed_bcd_to_decimal(data & !(BitFlags::H24_H12 | BitFlags::AM_PM)))
+    }
+    else {
+        Hours::PM(packed_bcd_to_decimal(data & !(BitFlags::H24_H12 | BitFlags::AM_PM)))
+    }
+}
 fn is_24h_format(hours_data: u8) -> bool {
     hours_data & BitFlags::H24_H12 == 0
 }