1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
use Arc;
use crateSearchApp;
use InputPluginError;
/// Performs some kind of pre-processing on a user query input. The input JSON is available
/// to the plugin as a reference. The plugin produces a vector of zero to many JSON objects that will
/// replace the input JSON.
///
/// A simple No-operation [`InputPlugin`] would simply clone the input and place it in a `Vec`.
///
/// # Default InputPlugins
///
/// The following default set of input plugin builders are found in the [`super::default`] module:
///
/// * [debug] - logs the (current) status of each query to the logging system
/// * [grid search] - duplicates a query based on a list of user-defined values
/// * [inject] - mechanism to inject values into the queries
/// * [load balancer] - uses weighting heuristics to balance query loads across threads
///
/// [debug]: super::default::debug::debug_builder::DebugInputPluginBuilder
/// [grid search]: super::default::grid_search::GridSearchBuilder
/// [inject]: super::default::inject::inject_builder::InjectPluginBuilder
/// [load balancer]: super::default::load_balancer::builder::LoadBalancerBuilder
///