summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cli/src/main.rs2
-rw-r--r--cli/src/search.rs10
-rw-r--r--cli/src/store.rs4
3 files changed, 8 insertions, 8 deletions
diff --git a/cli/src/main.rs b/cli/src/main.rs
index 4743ea0..bb9e321 100644
--- a/cli/src/main.rs
+++ b/cli/src/main.rs
@@ -134,7 +134,7 @@ fn main() {
sort,
filters,
} => {
- let mut search = Search::new(store.transactions());
+ let mut search = Search::new(&store.transactions());
if !filters.is_empty() {
search = search.parse(filters.join(" "));
}
diff --git a/cli/src/search.rs b/cli/src/search.rs
index 7fbb0a6..aecca69 100644
--- a/cli/src/search.rs
+++ b/cli/src/search.rs
@@ -114,7 +114,7 @@ impl Filter {
search.filtered = search
.filtered
.iter()
- .filter(|t| constraint.satisfies(search.transactions[**t]))
+ .filter(|t| constraint.satisfies(&search.transactions[**t]))
.copied()
.collect();
}
@@ -122,7 +122,7 @@ impl Filter {
search.filtered = search
.filtered
.iter()
- .filter(|t| !constraint.satisfies(search.transactions[**t]))
+ .filter(|t| !constraint.satisfies(&search.transactions[**t]))
.copied()
.collect();
}
@@ -133,11 +133,11 @@ impl Filter {
pub struct Search<'t> {
filtered: Vec<usize>,
- transactions: Vec<&'t Transaction>,
+ transactions: &'t [Transaction],
}
impl<'t> Search<'t> {
- pub fn new(transactions: Vec<&'t Transaction>) -> Self {
+ pub fn new(transactions: &'t [Transaction]) -> Self {
Self {
filtered: std::iter::successors(Some(0_usize), |n| Some(n.checked_add(1).unwrap()))
.take(transactions.len())
@@ -150,7 +150,7 @@ impl<'t> Search<'t> {
self
.filtered
.iter()
- .map(|idx| self.transactions[*idx])
+ .map(|idx| &self.transactions[*idx])
.collect()
}
diff --git a/cli/src/store.rs b/cli/src/store.rs
index 6d20022..c6e1f63 100644
--- a/cli/src/store.rs
+++ b/cli/src/store.rs
@@ -49,8 +49,8 @@ impl Store {
Ok(())
}
- pub fn transactions(&self) -> Vec<&Transaction> {
- self.transactions.iter().collect()
+ pub fn transactions(&self) -> &[Transaction] {
+ &self.transactions
}
pub fn categories(&self) -> Vec<Category> {