lua_sql_builder/mysql/
insert.rs

1pub struct Insert<'a> {
2    table: &'a str,
3    values: Vec<[&'a str; 2]>,
4}
5
6#[allow(dead_code)]
7impl<'a> Insert<'a> {
8    pub fn new(table: &'a str) -> Insert<'a> {
9        Insert {
10            table,
11            values: vec![],
12        }
13    }
14
15    pub fn values(&mut self, values: Vec<[&'a str; 2]>) {
16        self.values = values;
17    }
18
19    pub fn build(&self) -> String {
20        let mut statement = "INSERT INTO".to_string();
21
22        statement.push_str(&format!(" {} ", self.table));
23
24        let mut columns = String::new();
25        let mut values = String::new();
26
27        for column in &self.values {
28            columns.push_str(&format!("{},", column[0]));
29
30            if column[1].parse::<f64>().is_ok() {
31                values.push_str(&format!("{},", column[1]));
32            } else {
33                values.push_str(&format!("'{}',", column[1]));
34            }
35        }
36        columns.pop();
37        values.pop();
38
39        statement.push_str(&format!("({}) VALUES ({})", columns, values));
40        statement = statement.trim().to_string() + ";";
41        statement
42    }
43}