ruwebframe 0.1.2

a simple webframe for rust actix-web, based on rudi and rbatis.
Documentation
use heck::{ToLowerCamelCase, ToSnakeCase};
use yimi_rutool::core::StrUtil;
use crate::rulog::rulog;

pub trait IsEmptyString {
    fn is_empty(&self) -> bool;
}

impl IsEmptyString for Option<String> {
    fn is_empty(&self) -> bool {
        return match self {
            Some(s) => s.is_empty(),
            _ => true,
        };
    }
}

impl IsEmptyString for Option<&str> {
    fn is_empty(&self) -> bool {
        return match self {
            Some(s) => s.is_empty(),
            _ => true,
        };
    }
}
pub fn capitalize(s: &str) -> String {

    let mut c = s.chars();

    match c.next(){
        Some(f) => f.to_uppercase().collect::<String>() + c.as_str(),
        None => String::new(),
    }

}
pub fn exist_enc(var: &str) -> bool {
    var.contains("enc(")
}
pub fn exist_env(var: &str) -> bool {
     var.contains("$")
}
pub fn parse_env_var(var: String) -> String {
    if !exist_env(var.as_str()) {
        return var;
    }
    let words = StrUtil::split(var.as_str(), ":");
    if words.len() > 1 {
        for part in words {
            let mut v = part;
            v.push_str(":");
            let w = var.replace(v.as_str(), "").replace("}", "");

            return w;
        }
    }
    rulog::info2("var:",var.to_string().as_str());
    return var;
}
pub fn parse_var_enc(var: String) -> String {
    if !exist_enc(var.as_str()) {
        return var;
    }
    let words = StrUtil::split(var.as_str(), ":");
    if words.len() > 1 {
        for part in words {
            let mut v = part;
            v.push_str(":");
            let w = var.replace(v.as_str(), "").replace("}", "");
            //rulog::info(w.to_string().as_str());
            return w;
        }
    }
    rulog::info(var.to_string().as_str());
    return var;
}


pub fn to_snake_case(p: &str) -> String {
  
   p.to_snake_case().to_string()

}
pub fn to_camel_case(p: &str) -> String {
 
    p.to_lower_camel_case().to_string()

}