1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
use serde_json::Value;

pub mod bool_query;
pub mod exists_query;
pub mod geo_distance_query;
pub mod match_query;
pub mod multi_match_query;
pub mod range_query;
pub mod term_query;
pub mod terms_query;
pub mod wildcard_query;
pub mod nested;
pub mod script_query;
pub mod script_score_query;
pub mod match_all_query;

pub trait QueryTrait {
    fn build(&self) -> Value;
    fn query_name(&self) -> String;
}

trait MatchQueryTrait: QueryTrait {
    fn query_name() -> String;
}