rex_app/views/
search_view.rs

1use anyhow::Result;
2use rex_db::ConnCache;
3use rex_db::models::{FullTx, NewSearch};
4
5pub struct SearchView(Vec<FullTx>);
6
7pub(crate) fn get_search_txs(
8    search: &NewSearch,
9    db_conn: &mut impl ConnCache,
10) -> Result<SearchView> {
11    let result = search.search_txs(db_conn)?;
12
13    let search_view = SearchView(result);
14
15    Ok(search_view)
16}
17
18impl SearchView {
19    #[must_use]
20    pub fn tx_array(&self) -> Vec<Vec<String>> {
21        self.0.iter().map(FullTx::to_array).collect()
22    }
23
24    #[must_use]
25    pub fn get_tx(&self, index: usize) -> &FullTx {
26        &self.0[index]
27    }
28
29    #[must_use]
30    pub fn is_empty(&self) -> bool {
31        self.0.is_empty()
32    }
33
34    #[must_use]
35    pub fn new_empty() -> Self {
36        SearchView(Vec::new())
37    }
38}