ruwebframe 0.1.7

a simple webframe for rust actix-web, based on rudi and rbatis.
Documentation
use ruentity::BaseEntity;

use crate::rubase::get_self::GetSelf;
use crate::rubase::rudto::cfgdto;
use crate::rubase::{rudto, ruentity};
use crate::rudomain::rudb::dbentity::dbexample;
use crate::{rucfg, rulog};
use std::fs::File;
use std::io::{BufReader, Read};

#[cfg(test)]
mod tests {

    use super::*;
    #[test]
    fn test_001_parse_config() {
        let config = rucfg::find_bean_ru_config().unwrap();
        println!("config:\n{:#?}", config);

        let file = File::open("./config/ichub-postgres.yml");
        let mut read = BufReader::new(file.unwrap());
        let mut yaml_str = String::new();
        read.read_to_string(&mut yaml_str).unwrap();

        let ret = serde_yaml::from_str::<cfgdto::cfg_dto::CfgDto>(&yaml_str);
        // ✅ 显式指定类型
        println!("{:#?}", ret);
    }

    #[test]
    fn test_004_parse_config() {
        let config = rucfg::find_bean_ru_config()
            .unwrap()
            .lock()
            .unwrap()
            .config
            .clone();

        rulog::info(config.to_json().unwrap() );
    }
    #[test]
    fn test_006_from_json() {
        let person = dbexample::Person::default();

        let s = r##"{
            "id": 123,
            "name": "宋双艳",
            "age": 45,
            "active": false
        }"##;
        let p = person.from_json(s.to_string()).unwrap();
        println!("p:{:#?}", p);
    }

    #[test]
    fn test_007_parse_config() {
        let mut config = rucfg::find_bean_ru_config()
            .unwrap()
            .lock()
            .unwrap()
            .read_clone();
        println!("{:#?}", config);
        //rulog::info(jsonutils::struct2json(&config) .unwrap().as_str());
        rulog::info(config.to_json().unwrap().as_str()); // 3. 传 &str
        config.gorm.dbType = "1111".to_string();
        let pp = config.from_json(config.to_json().unwrap());
        println!("pp:{:#?}", pp);
    }
    #[test]
    fn test_008_parse_config() {
        let mut config = rucfg::find_bean_ru_config()
            .unwrap()
            .lock()
            .unwrap()
            .read_clone();
        println!("{:#?}", config);
        rulog::info(config.to_json().unwrap().as_str());
        config.gorm.dbType = "1111".to_string();
        let pp = config.from_json(config.to_json().unwrap());
        println!("pp:{:#?}", pp);
    }

    #[test]
    fn test_010_parse_config() {
        let cfg = cfgdto::CfgDto::default();
        println!("{:#?}", cfg);
    }
    #[test]
    fn test_011_parse_config() {
        let cfg = cfgdto::find_bean_cfg_dto();
        println!("{:#?}", cfg);
    }

    #[test]
    fn test_012_parse_config() {
        let person = dbexample::find_bean_person().unwrap();
        let mut inst = person.lock().unwrap();
        inst.name = "leijmdas".to_string();
        rulog::info2("person:", inst.to_json().unwrap().as_str());
        // 从 JSON 字符串反序列化回结构体
        let s = r#"
            {
                "id": 10,
                "name": "songlei",
                "age": 10,
                "active": true
            }
    "#;
        let pp = inst.from_json(s.to_string());
        rulog::info2("pp:", pp.unwrap().to_json().unwrap().as_str());
    }

    #[test]
    fn test_13_to_json() {
        let mut person = dbexample::find_bean_person().unwrap();
        person.lock().unwrap().name = "leijmdas".to_string();
        rulog::info2("person:", person.lock().unwrap());
    }

    #[test]
    fn test_15_from_json() {
        let mut fileDto = rudto::find_bean_file_dto().unwrap().get_self();
        println!("{:#?}", fileDto);
        fileDto.size = 4;
    }

    #[test]
    fn test_016_cfg_to_json() {
        println!(
            "config:\n{:#?}",
            rucfg::find_bean_ru_config().unwrap().lock().unwrap().read()
        );
    }
    #[test]
    fn test_017_find_bean_ru_config() {
        let cfg = rucfg::find_bean_ru_config().unwrap();
        let c = cfg.lock().unwrap();

        println!("{:#?}", c.read().find_env());
    }
}