summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bin/domain/imag-log/src/main.rs2
-rw-r--r--lib/domain/libimagdiary/src/diaryid.rs8
2 files changed, 9 insertions, 1 deletions
diff --git a/bin/domain/imag-log/src/main.rs b/bin/domain/imag-log/src/main.rs
index 2d0c8b1..58d2573 100644
--- a/bin/domain/imag-log/src/main.rs
+++ b/bin/domain/imag-log/src/main.rs
@@ -173,7 +173,7 @@ fn show(rt: &Runtime) {
})
.filter(|e| e.is_log().map_err_trace_exit_unwrap())
.map(|entry| (entry.diary_id().map_err_trace_exit_unwrap(), entry))
- .sorted_by_key(|tpl| tpl.0.clone())
+ .sorted_by_key(|tpl| tpl.0.get_date_representation())
.into_iter()
.map(|tpl| { debug!("Found entry: {:?}", tpl.1); tpl })
.map(|(id, entry)| {
diff --git a/lib/domain/libimagdiary/src/diaryid.rs b/lib/domain/libimagdiary/src/diaryid.rs
index c28aebd..727bb52 100644
--- a/lib/domain/libimagdiary/src/diaryid.rs
+++ b/lib/domain/libimagdiary/src/diaryid.rs
@@ -132,6 +132,14 @@ impl DiaryId {
self
}
+ /// Get the date how it is stored in the DiaryId object
+ ///
+ /// This can be useful for sorting a list of diary entries by date, but not using
+ /// Into<NaiveDateTime>
+ pub fn get_date_representation(&self) -> (i32, u32, u32, u32, u32, u32) {
+ (self.year, self.month, self.day, self.hour, self.minute, self.second)
+ }
+
pub fn now(name: String) -> DiaryId {
use chrono::offset::Local;