diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2017-07-15 15:02:00 +0200 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2017-07-15 16:05:17 +0200 |
commit | b88e95f88163d22a8b18262590919fd4818b1392 (patch) | |
tree | e38539aec2c3b726adb7c88f3b9ea2c97b3ae059 | |
parent | 58047d319a0aaa82fd9da7c4cc4857ca65ef53f6 (diff) |
Add TimeTracking::get_timetrack_tag()
-rw-r--r-- | libimagentrytimetrack/src/timetracking.rs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/libimagentrytimetrack/src/timetracking.rs b/libimagentrytimetrack/src/timetracking.rs index 6ee2c105..a2d21e04 100644 --- a/libimagentrytimetrack/src/timetracking.rs +++ b/libimagentrytimetrack/src/timetracking.rs @@ -29,6 +29,7 @@ use chrono::naive::datetime::NaiveDateTime; use libimagstore::store::Entry; use libimagerror::into::IntoError; +use tag::TimeTrackingTag as TTT; use error::TimeTrackErrorKind as TTEK; use error::MapErrInto; use result::Result; @@ -41,6 +42,8 @@ use toml_query::read::TomlValueReadExt; pub trait TimeTracking { + fn get_timetrack_tag(&self) -> Result<TTT>; + fn set_start_datetime(&mut self, dt: NaiveDateTime) -> Result<()>; fn get_start_datetime(&self) -> Result<Option<NaiveDateTime>>; @@ -59,6 +62,16 @@ pub trait TimeTracking { impl TimeTracking for Entry { + fn get_timetrack_tag(&self) -> Result<TTT> { + self.get_header() + .read(DATE_TIME_TAG_HEADER_PATH) + .map_err_into(TTEK::HeaderReadError) + .map(|value| match value { + Some(&Value::String(ref s)) => s.clone().into(), + _ => unimplemented!(), + }) + } + fn set_start_datetime(&mut self, dt: NaiveDateTime) -> Result<()> { let s = dt.format(DATE_TIME_FORMAT).to_string(); |