datalocker 0.3.1

My first Rust crate I made to learn. Basic Database Interface. Currently works with mySQL only. Uses the mysql crate and provides a wrapper around it to make interacting with a mysql database easier.
Documentation
use crate::common::enums::DB;
use crate::common::traits::{BuildsClauses, BuildsQueries, QueryData};

use super::builders::clause::{ClauseBuilder, SelectBuilder};



pub struct QueryBuilder<T: BuildsQueries> {
    db: DB,
    _builder: T
}




impl<T: BuildsQueries> QueryBuilder<T> {
    pub fn new(db_type: DB) -> Self {
        Self {
            db: db_type,
            _builder: T::new()
        }
    }

    pub fn get_type(self) -> DB {
        self.db
    }

    pub fn create(&mut self, table: &str, fields: &[(&str, &str)]) -> String {
        self._builder.create(table, fields)
    }

    pub fn insert<Q: QueryData>(&self, table: &str,  data: &[Q]) -> String {
        self._builder.insert(table, data)
    }

    pub fn select_raw(&self, table: &str, cols: &str, where_clause: Option<&str>, order_by: Option<&str>, limit: Option<&str>) -> String {
        self._builder.select_raw(table, cols, where_clause, order_by, limit)
    }

    pub fn select(&self, select_obj: &SelectBuilder) -> String{
        self._builder.select(select_obj)
    }

    pub fn delete_raw(&self, table: &str, where_clause: Option<&str>) -> String {
        self._builder.delete_raw(table, where_clause)
    }

    pub fn delete(&self, select_obj: &ClauseBuilder) -> String{
        self._builder.delete(select_obj)
    }

    pub fn update_raw(&self, table: &str, where_clause: Option<&str>, fields: &[(&str, &str)]) -> String {
        self._builder.update_raw(table, where_clause, fields)
    }
    
    pub fn update<U: BuildsClauses>(&self, clause_obj: &U, field_updates: &[(&str, &str)]) -> String {
        self._builder.update(clause_obj, field_updates)
    }


}