use crate::query::types::{QuerySearchID, QuerySearchLimit, QuerySearchOffset};
use crate::store::fst::StoreFSTActionBuilder;
use crate::store::fst::StoreFSTPool;
use crate::store::item::StoreItem;
pub struct ExecutorList;
impl ExecutorList {
pub fn execute(
store: StoreItem,
_event_id: QuerySearchID,
limit: QuerySearchLimit,
offset: QuerySearchOffset,
) -> Result<Vec<String>, ()> {
if let StoreItem(collection, Some(bucket), None) = store {
general_fst_access_lock_read!();
if let Ok(fst_store) = StoreFSTPool::acquire(collection, bucket) {
let fst_action = StoreFSTActionBuilder::access(fst_store);
debug!("running list");
return fst_action.list_words(limit as usize, offset as usize);
}
}
Err(())
}
}