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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
extern crate serde; use serde::{Deserialize}; use std::collections::HashMap; pub fn default_string() -> String { "".to_string() } #[derive(Debug, Deserialize)] #[serde(rename_all = "camelCase")] pub struct SqlMap { #[serde(rename = "SqlStatement", default)] pub sql_statements: Vec<SqlStatement>, } #[derive(Debug, Deserialize)] pub struct SqlStatement { pub id: String, pub crud: String, pub statement: String, #[serde(rename = "clause", default)] pub clauses: Vec<Clause>, #[serde(rename = "isNotEmpty", default)] pub is_not_empty: Vec<Property>, #[serde(rename = "isEqual", default)] pub is_equal: Vec<Property>, #[serde(rename = "footer", default)] pub footer: String, } #[derive(Debug, Deserialize)] pub struct Clause { #[serde(default = "default_string")] pub id: String, #[serde(default = "default_string")] pub statement: String, #[serde(rename = "isNotEmpty", default)] pub is_not_empty: Vec<Property>, #[serde(rename = "isEqual", default)] pub is_equal: Vec<Property>, } #[derive(Debug, Deserialize)] pub struct Property { pub property: String, #[serde(default = "default_string")] pub value: String, pub statement: String } #[derive(Debug, Deserialize)] #[serde(rename_all = "camelCase")] pub struct SqlStatementMap{ pub statement: String, pub clause_map: HashMap<String, String>, } pub enum DB { Oracle(String), Posgresql(String), } #[derive(Debug)] pub enum DbConnStatus { Idle, Active, Disconnected, } #[derive(Debug)] pub enum Value { String(String), StringLikeLeft(String), StringLikeRight(String), StringLikeBoth(String), Float(f64), Integer(i64), Bool(bool), Date(String), StringArray(Vec<String>), IntegerArray(Vec<i64>), BareString(String), } pub enum ColumnType { String, Float, Integer, Date, } pub struct Column { pub name: String, pub column_type: ColumnType, } pub struct SqlParam<'a> { pub sql_id: &'a str, pub sub_sql_id: &'a str, pub param: &'a HashMap<String, Value>, }