diff options
| author | Gustav Sörnäs <gustav@sornas.net> | 2021-08-02 14:11:34 +0200 |
|---|---|---|
| committer | Gustav Sörnäs <gustav@sornas.net> | 2021-08-02 14:11:34 +0200 |
| commit | c749ddb23b7cab3320d2f771628a5426914518db (patch) | |
| tree | 32736c8e1fe07e891867993cf4ee4fe749047e87 | |
| parent | 40d8e8fadd4aea081ecbb64b1dee43606e6b3efc (diff) | |
| download | money-c749ddb23b7cab3320d2f771628a5426914518db.tar.gz | |
Vec<&Transaction> -> &[Transaction]
| -rw-r--r-- | cli/src/main.rs | 2 | ||||
| -rw-r--r-- | cli/src/search.rs | 10 | ||||
| -rw-r--r-- | cli/src/store.rs | 4 |
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> { |
