bmbp_rdbc_sql 0.2.8

SQL构建器
Documentation
use crate::{RdbcColumn, RdbcTableColumn};

pub enum RdbcFunc {
    CONCAT(RdbcConcatFunc),
    REPLACE(RdbcReplaceFunc),
}

impl RdbcFunc {
    pub fn concat_split(columns: Vec<RdbcColumn>, split_: Option<String>) -> RdbcFunc {
        RdbcFunc::CONCAT(RdbcConcatFunc::concat_split(columns, split_))
    }
    pub fn concat(columns: Vec<RdbcColumn>) -> RdbcFunc {
        RdbcFunc::CONCAT(RdbcConcatFunc::concat(columns))
    }
    pub fn replace(column: RdbcTableColumn, old_value: String, new_value: String) -> RdbcFunc {
        RdbcFunc::REPLACE(RdbcReplaceFunc::replace(column, old_value, new_value))
    }
}

pub struct RdbcConcatFunc {
    liter_: Option<String>,
    columns_: Vec<RdbcColumn>,
}

impl RdbcConcatFunc {
    pub fn get_liter(&self) -> Option<&String> {
        self.liter_.as_ref()
    }
    pub fn get_columns(&self) -> &Vec<RdbcColumn> {
        &self.columns_
    }
}

impl RdbcConcatFunc {
    pub fn concat_split(columns: Vec<RdbcColumn>, split_: Option<String>) -> RdbcConcatFunc {
        RdbcConcatFunc {
            liter_: split_,
            columns_: columns,
        }
    }
    pub fn concat(columns: Vec<RdbcColumn>) -> RdbcConcatFunc {
        RdbcConcatFunc {
            liter_: None,
            columns_: columns,
        }
    }
}

pub struct RdbcReplaceFunc {
    column: RdbcTableColumn,
    old_value: String,
    new_value: String,
}

impl RdbcReplaceFunc {
    pub fn get_column(&self) -> &RdbcTableColumn {
        &self.column
    }
    pub fn get_old_value(&self) -> &String {
        &self.old_value
    }
    pub fn get_new_value(&self) -> &String {
        &self.new_value
    }
}

impl RdbcReplaceFunc {
    pub fn replace(
        column: RdbcTableColumn,
        old_value: String,
        new_value: String,
    ) -> RdbcReplaceFunc {
        RdbcReplaceFunc {
            column,
            old_value,
            new_value,
        }
    }
}