ares/
api_library_input_struct.rs

1/// import general checker
2use crate::checkers::{
3    checker_type::{Check, Checker},
4    default_checker::DefaultChecker,
5};
6use lemmeknow::Identifier;
7
8/// Library input is the default API input
9/// The CLI turns its arguments into a LibraryInput struct
10pub struct LibraryInput<Type> {
11    /// The input to be decoded.
12    /// Given to us by the user.
13    pub encoded_text: String,
14    /// A level of verbosity to determine.
15    /// How much we print in logs.
16    pub verbose: i32,
17    /// The checker to use
18    pub checker: Checker<Type>,
19    /// The lemmeknow config to use
20    pub lemmeknow_config: Identifier,
21}
22
23/// Creates a default lemmeknow config
24const LEMMEKNOW_DEFAULT_CONFIG: Identifier = Identifier {
25    min_rarity: 0.0,
26    max_rarity: 0.0,
27    tags: vec![],
28    exclude_tags: vec![],
29    file_support: false,
30    boundaryless: false,
31};
32
33impl Default for LibraryInput<DefaultChecker> {
34    fn default() -> Self {
35        LibraryInput {
36            encoded_text: String::new(),
37            // this will be of type Checker<DefaultChecker>
38            verbose: 0,
39            checker: Checker::new(),
40            lemmeknow_config: LEMMEKNOW_DEFAULT_CONFIG,
41        }
42    }
43}