common: Implement Time::fmt_time().
authorTilman Sauerbeck <tilman@code-monkey.de>
Thu, 2 Jan 2020 12:32:26 +0000 (13:32 +0100)
committerTilman Sauerbeck <tilman@code-monkey.de>
Mon, 6 Jan 2020 09:45:34 +0000 (10:45 +0100)
Formats time as HH:MM:SS.

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');
+    }
 }