From 8f2ece2b01e93097745e5d47a9a1aaa1242dbc2b Mon Sep 17 00:00:00 2001 From: KAMADA Ken'ichi Date: Sat, 17 Jun 2017 21:43:59 +0900 Subject: [PATCH] Implement std::fmt::Display trait for DateTime. --- src/tiff.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/tiff.rs b/src/tiff.rs index 043a93d..cc4c826 100644 --- a/src/tiff.rs +++ b/src/tiff.rs @@ -24,6 +24,8 @@ // SUCH DAMAGE. // +use std::fmt; + use endian::{Endian, BigEndian, LittleEndian}; use error::Error; use tag; @@ -157,6 +159,14 @@ pub fn is_tiff(buf: &[u8]) -> bool { } /// A struct used to parse a DateTime field. +/// +/// # Examples +/// ``` +/// use exif::DateTime; +/// let dt = DateTime::from_ascii(b"2016:05:04 03:02:01").unwrap(); +/// assert_eq!(dt.year, 2016); +/// assert_eq!(format!("{}", dt), "2016-05-04 03:02:01"); +/// ``` #[derive(Debug)] pub struct DateTime { pub year: u16, @@ -190,6 +200,14 @@ impl DateTime { } } +impl fmt::Display for DateTime { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + write!(f, "{:04}-{:02}-{:02} {:02}:{:02}:{:02}", + self.year, self.month, self.day, + self.hour, self.minute, self.second) + } +} + #[cfg(test)] mod tests { use super::*;