diff options
author | Tim Oram <dev@mitmaro.ca> | 2024-02-17 09:56:13 -0330 |
---|---|---|
committer | Tim Oram <dev@mitmaro.ca> | 2024-02-18 19:21:50 -0330 |
commit | 578bd87571af87283844ee7857cc7dd5d8c10137 (patch) | |
tree | 86fb7d0f76dcf0359c71e7eb2c81724205910d48 /src/test_helpers/testers/searchable.rs | |
parent | 12235df6a584cf44ec985d06df0cae74dbfc7ebd (diff) |
Implement Searchable for list module search
Diffstat (limited to 'src/test_helpers/testers/searchable.rs')
-rw-r--r-- | src/test_helpers/testers/searchable.rs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/test_helpers/testers/searchable.rs b/src/test_helpers/testers/searchable.rs new file mode 100644 index 0000000..f183b81 --- /dev/null +++ b/src/test_helpers/testers/searchable.rs @@ -0,0 +1,27 @@ +use std::time::Duration; + +use crate::search::{Interrupter, SearchResult, Searchable}; + +const SEARCH_INTERRUPT_TIME: Duration = Duration::from_secs(1); + +pub(crate) struct SearchableRunner<S: Searchable + Clone> { + searchable: S, +} + +impl<S: Searchable + Clone> SearchableRunner<S> { + pub(crate) fn new(searchable: &S) -> Self { + Self { + searchable: searchable.clone(), + } + } + + pub(crate) fn run_search(&mut self, search_term: &str) -> SearchResult { + self.searchable + .search(Interrupter::new(SEARCH_INTERRUPT_TIME), search_term) + } + + pub(crate) fn run_search_with_time(&mut self, search_term: &str, millis: u64) -> SearchResult { + self.searchable + .search(Interrupter::new(Duration::from_millis(millis)), search_term) + } +} |