ruwebframe 0.1.2

a simple webframe for rust actix-web, based on rudi and rbatis.
Documentation
use flexi_logger::{Cleanup, Criterion, FileSpec, Logger, Naming};
use serde::{Deserialize, Serialize};
use sqlx::testing::TestTermination;
use ruwebframe::rudomain::rudb::dbentity::dbexample;
use ruwebframe::rubase::{ruentity, ruresult}; 
use ruwebframe::rubase::rutils::jsonutils;
use ruwebframe::rucfg;
use ruwebframe::rubase::ruentity::BaseEntity;

use ruwebframe::rulog::rulog;

#[test]
fn test_add_integration() {
    rulog::info("info integration1 logs");
    rulog::info("info integration 2logs");
    rulog::info("info integration 3logs");
    rulog::info("info integratio43n logs");
}
//RUST_TEST_NOCAPTURE=1
#[test]
fn test_divide_integration() {
    // let result = divide(100, 5);
    // assert!(result.is_ok());
    // assert_eq!(result.unwrap(), 20);

    // 代码中指定:info 级别以上,但将 my_module 模块设为 debug 级别
    let r = Logger::try_with_str("info, my_module=debug") ;
    log::info!("这条信息会写入日志文件");
    r.is_success();
}
#[test]
fn test_003_p() {
    rulog::info("info integration1 logs");
    rulog::info("info integration 2logs");
    rulog::info("info integration 3logs");
    rulog::info("info integratio43n logs");
    let person = dbexample::Person { 
        id: 1,
        name: String::from("Alice"),
        age: 30,
        active: true,
    };
    rulog::info(person.to_string().as_str());
    person.log();
}
#[test]
fn test_004_log() {
    rulog::info("info integration1 logs");
    let person = dbexample::Person { 
        id: 1,
        name: String::from("Alice"),
        age: 30,
        active: true,
    };
    person.log();
    person.log();
    person.log();
    person.log();
}


#[test]
fn test_006() {
    rulog::info("info integration1 logs");
    rulog::info("info integration 2logs");
    rulog::info("info integration 3logs");
    rulog::info("info integratio43n logs");
    let person = dbexample::Person::new();
    println!("{}", person);
}
#[test]
fn test_007() {
    rulog::info("info integration1 logs");
    rulog::info("info integration 2logs");
    rulog::info("info integration 3logs");
    let person = dbexample::Person::new_as(1, "leijmdas".into(), 33, true);
    println!("{:#?}", person);
}
fn struct2json<T: Serialize>(obj: &T) -> Result<String, serde_json::Error> {
    serde_json::to_string(obj)
}

// ---------- JSON 字符串 -> 结构体 ----------
fn json2struct<T: for<'de> Deserialize<'de>>(json_str: &str) -> Result<T, serde_json::Error> {
    serde_json::from_str(json_str)
}
#[test]
fn test_008_tojson() {
    rulog::info("info integration1 logs");
    rulog::info("info integration 2logs");
    rulog::info("info integration 3logs");
    rulog::info("info integratio43n logs");
    let person = dbexample::Person::new_as(1, "leijmdas".into(), 33, true);
    println!("{:#?}", person);
    let r = struct2json(&person);
    println!("{:#?}", r);

}


// let s:&str  = r#"
//     {"id":1,"name":"leijmdas","age":33,"active":true}
// "#;
#[test]
fn test_009_fromjson() {
    let person = dbexample::Person::new_as(1, "leijmdas".into(), 33, true);
    println!("原始对象: {:#?}", person);

    // 1. 结构体 -> JSON
    let ret = serde_json::to_string(&person).unwrap();
    println!("JSON: {}", ret);
    let r = struct2json(&person);

    let p: Result< dbexample::Person , serde_json::Error> = json2struct(r.unwrap().as_str());

    println!("解析后: {:#?}", p);
}
// let s:&str  = r#"
//     {"id":1,"name":"leijmdas","age":33,"active":true}
// "#;
#[test]
fn test_010_fromjsonto() {
    let person = dbexample::Person::new_as(1, "leijmdas".into(), 33, true);
    println!("原始对象: {:#?}", person);

    // 1. 结构体 -> JSON
    let ret = serde_json::to_string(&person).unwrap();
    println!("JSON: {}", ret);
    let ret = jsonutils::struct2json(&person);

    let p: Result< dbexample::Person , serde_json::Error> = jsonutils:: json2struct(ret.unwrap().as_str());
    rulog::info("ret");
    rulog::info(p.unwrap().to_string().as_str() );

}
#[test]
fn test_011_fromjsonto() {
    let ret= ruresult::RuResult::new();
    rulog::info(ret.to_string().as_str() );

}
#[test]
fn test_012_rustresult() {
    let ret= ruresult::RuResult::newFail();

    rulog::info2("ret:",ret.to_string().as_str() );

}
#[test]
fn test_013_rustresult() {
    let ret= ruresult::RuResult::new();

    rulog::info2("ret:",ret.to_json().as_str() );

}
#[test]
fn test_014_rustresult() {
    let ret= ruresult::find_bean_ruresult();

    rulog::info2("ret:",ret.unwrap().to_json().as_str() );

}

#[derive(Serialize, Deserialize)]
struct Client {
    pub name: String,
    #[serde(rename = "testUrl")]
    pub test_url: String,
    #[serde(rename = "enableTestUrl")]
    pub enable_test_url: String,
    #[serde(rename = "webTimeout")]
    pub web_timeout: String,
}

#[derive(Serialize, Deserialize)]
struct Server {
    pub name: String,
    pub port: String,
    pub title: String,
    pub ver: String,
}

#[derive(Serialize, Deserialize)]
struct Root {
    pub server: Server,
    pub client: Client,
}