xyz_validator/
lib.rs

1//!  # Examples
2//!
3//!  Basic usage:
4//!
5//!  ```
6//! use xyz_validator::{RqlValidator, ValidatorInterface};
7//!
8//!fn main() {
9//!    let valid_rql_statement = "or(and(eq(name,John),eq(surname,Doe)),eq(surname,Smith))".to_owned();
10//!    let rql_validator: Box<dyn ValidatorInterface> = Box::new(RqlValidator::new(None));
11//!    assert!(rql_validator.is_valid(valid_rql_statement));
12//!
13//!    //to view errors we should define a callback function for `String` argument
14//!    fn your_handle_error_function(your_var: String) {
15//!        eprintln!("{}", your_var);
16//!    }
17//!
18//!    let rql_validator: Box<dyn ValidatorInterface> =
19//!        Box::new(RqlValidator::new(Some(your_handle_error_function)));
20//!
21//!    let invalid_rql_statement = "and(eq(name,John))".to_owned();
22//!    assert!(!rql_validator.is_valid(invalid_rql_statement));
23//!    //Operator `and` should have at least 2 nested queries
24//!}
25//!  ```
26
27pub use self::interfaces::validator_interface::ValidatorInterface;
28pub use self::rql_validator::RqlValidator;
29pub mod interfaces;
30pub mod rql_validator;