pub mod lookup;
#[cfg(feature = "analiticcl")]
pub mod analiticcl;
#[cfg(feature = "fst")]
pub mod fst;
#[cfg(feature = "finalfusion")]
pub mod finalfusion;
use crate::lexer::Term;
use crate::{Error, QueryParams, TermExpansions};
pub trait Module: Send + Sync {
fn kind(&self) -> &'static str;
fn id(&self) -> &str;
fn name(&self) -> &str;
fn load(&mut self) -> Result<(), Error>;
fn expand_query(
&self,
terms: &Vec<Term>,
queryparams: &QueryParams,
) -> Result<TermExpansions, Error>;
}