summaryrefslogtreecommitdiffstats
path: root/bin/domain/imag-calendar/src/util.rs
diff options
context:
space:
mode:
Diffstat (limited to 'bin/domain/imag-calendar/src/util.rs')
-rw-r--r--bin/domain/imag-calendar/src/util.rs44
1 files changed, 21 insertions, 23 deletions
diff --git a/bin/domain/imag-calendar/src/util.rs b/bin/domain/imag-calendar/src/util.rs
index a3f17350..f6a45460 100644
--- a/bin/domain/imag-calendar/src/util.rs
+++ b/bin/domain/imag-calendar/src/util.rs
@@ -132,14 +132,11 @@ pub fn kairos_parse(spec: &str) -> Result<NaiveDateTime> {
::kairos::parser::Parsed::TimeType(tt) => {
trace!("before-filter spec resulted in timetype");
- let tt = tt.calculate()
+ tt.calculate()
.map_err_trace_exit_unwrap()
.get_moment()
- .ok_or_else(|| format_err!("Not a moment in time: {}", spec))?
- .clone();
-
- trace!("Before filter spec {} => {}", spec, tt);
- Ok(tt)
+ .cloned()
+ .ok_or_else(|| format_err!("Not a moment in time: {}", spec))
}
}
}
@@ -160,25 +157,26 @@ pub fn find_event_by_id<'a>(store: &'a Store, id: &str, refconfig: &Config) -> R
trace!("Checking whether {} is represented by {}", id, event.get_location());
let parsed = ParsedEventFLE::parse(event, refconfig)?;
- if parsed
+ let found = parsed
.get_data()
.events()
- .filter_map(|event| if event
- .as_ref()
- .map(|e| {
- trace!("Checking whether {:?} starts with {}", e.uid(), id);
- e.uid().map(|uid| uid.raw().starts_with(id)).unwrap_or(false)
- })
- .unwrap_or(false)
- {
- trace!("Seems to be relevant");
- Some(event)
- } else {
- None
- })
- .next()
- .is_some()
- {
+ .any(|event| {
+ let take = event
+ .as_ref()
+ .map(|e| {
+ trace!("Checking whether {:?} starts with {}", e.uid(), id);
+ e.uid().map(|uid| uid.raw().starts_with(id)).unwrap_or(false)
+ })
+ .unwrap_or(false);
+
+ if take {
+ trace!("Seems to be relevant");
+ }
+
+ take
+ });
+
+ if found {
return Ok(Some(parsed))
}
}