ruwebframe 0.1.2

a simple webframe for rust actix-web, based on rudi and rbatis.
Documentation
use displaydoc::Display;
use postgres::Client;
use serde::{Deserialize, Serialize};
use tokio_postgres::NoTls;
use crate::rubase::rutils::strutils;
use crate::rubase::ruentity;

struct Database {
    name: String,
}
#[derive(Debug, Clone, Default, Deserialize, Serialize)]
pub struct Gorm {
    pub debug: String,
    pub dbType: String,
    pub enable: String,    // {DB_ENABLE: true}
    pub maxIdletime: i32,  //900 # s
    pub maxLifetime: i32,  //7200 # s
    pub maxOpenConns: i32, //150
    pub maxIdleConns: i32, //50
}
impl ruentity::BaseEntity for Gorm {
     
}
impl Gorm {
    pub fn new() -> Gorm {
        Self {
            debug: "false".to_string(),
            dbType: "mysql".to_string(),
            enable: "true".to_string(),
            maxIdletime: 900,
            maxLifetime: 7200,
            maxOpenConns: 150,
            maxIdleConns: 50,
        }
    }
    pub fn parse_env_var(&mut self)   {
        self.debug= strutils::parse_env_var(std::mem::take(&mut self.debug));
        self.dbType= strutils::parse_env_var(std::mem::take(&mut self.dbType));
        self.enable= strutils::parse_env_var(std::mem::take(&mut self.enable));


    }
}
#[derive(Debug, Clone, Display,Default, Deserialize, Serialize)]
pub struct DataSource {
    dbtype: String,
    dbname: String,
    host: String,
    port: String,     //${DB_PORT:5432}
    username: String, //${DB_USER:postgres}
    password: String, //${DB_PASSWORD:enc(ap3bkQhgwYOYarqeXA0wTJqTTAA/CPJu2FJAyIIDUKI=)}
    sslmode: String,  //${DB_SSLMODE:disable}
    charset: String,
}

impl ruentity::BaseEntity for DataSource {

}
impl DataSource {
    pub fn new() -> DataSource {
        Self {

            ..Default::default()
        }
    }
    pub fn buildUrl(&self) -> std::string::String {
        format!(
            "host={} port={} user={} dbname={} password={}",
            self.host, self.port, self.username, self.dbname, self.password
        ) // 如果需要 TLS 可换成 openssl 等
    }
    pub fn parse_env_var(&mut self)   {
        self.dbtype= strutils::parse_env_var(std::mem::take(&mut self.dbtype));
        self.dbname= strutils::parse_env_var(std::mem::take(&mut self.dbname));
        self.host= strutils::parse_env_var(std::mem::take(&mut self.host));
        self.port= strutils::parse_env_var(std::mem::take(&mut self.port));
        self.username= strutils::parse_env_var(std::mem::take(&mut self.username));
        self.password= strutils::parse_env_var(std::mem::take(&mut self.password));
        self.sslmode= strutils::parse_env_var(std::mem::take(&mut self.sslmode));
        self.charset= strutils::parse_env_var(std::mem::take(&mut self.charset));

    }
}