common: Implement Time::fmt_time().
[gps-watch.git] / src / common / time.rs
index 0413c5880d06f2fea126d084eb88a7f518a9bc84..e11dea430bae089e64feb4b738be866cc406a0b2 100644 (file)
@@ -24,6 +24,8 @@
  * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  */
 
+use fmt::fmt_u32_pad;
+
 pub struct Time {
     seconds: i32,
     minutes: i32,
@@ -115,4 +117,18 @@ impl Time {
             })
         }
     }
+
+    pub fn fmt_time(&self, s: &mut [u8]) {
+        let mut offset = 0;
+
+        offset += fmt_u32_pad(&mut s[offset..], self.hours as u32, 2, b'0');
+        s[offset] = b':';
+        offset += 1;
+
+        offset += fmt_u32_pad(&mut s[offset..], self.minutes as u32, 2, b'0');
+        s[offset] = b':';
+        offset += 1;
+
+        fmt_u32_pad(&mut s[offset..], self.seconds as u32, 2, b'0');
+    }
 }