forked from janek/mostr
refactor(task): return descriptions as references
This commit is contained in:
parent
4d9a496a1b
commit
867ba917c0
24
src/task.rs
24
src/task.rs
|
@ -15,7 +15,11 @@ impl Task {
|
||||||
Task {
|
Task {
|
||||||
children: Default::default(),
|
children: Default::default(),
|
||||||
props: Default::default(),
|
props: Default::default(),
|
||||||
tags: if event.tags.is_empty() { None } else { Some(event.tags.iter().cloned().collect()) },
|
tags: if event.tags.is_empty() {
|
||||||
|
None
|
||||||
|
} else {
|
||||||
|
Some(event.tags.iter().cloned().collect())
|
||||||
|
},
|
||||||
event,
|
event,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,10 +34,10 @@ impl Task {
|
||||||
None
|
None
|
||||||
}
|
}
|
||||||
|
|
||||||
fn descriptions(&self) -> impl Iterator<Item = String> + '_ {
|
fn descriptions(&self) -> impl Iterator<Item = &String> + '_ {
|
||||||
self.props.iter().filter_map(|event| {
|
self.props.iter().filter_map(|event| {
|
||||||
if event.kind == Kind::TextNote {
|
if event.kind == Kind::TextNote {
|
||||||
Some(event.content.clone())
|
Some(&event.content)
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
}
|
}
|
||||||
|
@ -97,11 +101,11 @@ impl Task {
|
||||||
"name" => Some(self.event.content.clone()),
|
"name" => Some(self.event.content.clone()),
|
||||||
"time" => Some(self.time_tracked().to_string()), // TODO: format properly
|
"time" => Some(self.time_tracked().to_string()), // TODO: format properly
|
||||||
"tags" => self.tags.as_ref().map(|tags| {
|
"tags" => self.tags.as_ref().map(|tags| {
|
||||||
tags.iter()
|
tags.iter()
|
||||||
.map(|t| format!("{}", t.content().unwrap()))
|
.map(|t| format!("{}", t.content().unwrap()))
|
||||||
.collect::<Vec<String>>()
|
.collect::<Vec<String>>()
|
||||||
.join(" ")
|
.join(" ")
|
||||||
}),
|
}),
|
||||||
"props" => Some(format!(
|
"props" => Some(format!(
|
||||||
"{:?}",
|
"{:?}",
|
||||||
self.props
|
self.props
|
||||||
|
@ -111,8 +115,8 @@ impl Task {
|
||||||
)),
|
)),
|
||||||
"desc" | "description" => self.descriptions().fold(None, |total, s| {
|
"desc" | "description" => self.descriptions().fold(None, |total, s| {
|
||||||
Some(match total {
|
Some(match total {
|
||||||
None => s,
|
None => s.clone(),
|
||||||
Some(i) => i + " " + &s,
|
Some(i) => i + " " + s,
|
||||||
})
|
})
|
||||||
}),
|
}),
|
||||||
_ => {
|
_ => {
|
||||||
|
|
Loading…
Reference in New Issue