ruwebframe 0.1.2

a simple webframe for rust actix-web, based on rudi and rbatis.
Documentation
use ctor::ctor;
use ruwebframe::rudi::dicontainer::direg;
use std::sync::Arc;
use ruwebframe::database::Database;
use ruwebframe::rudomain::rudb::dbentity::dbexample  ;
use ruwebframe::rulog;
use ruwebframe::rulog::RuLog;

fn test_greg() {
    // 1. 注册(全局,任意地方都能调)
    direg::register_singleton("db", Database::new);
    direg::register("logger", RuLog::new);

    // 2. 获取单例(首次 get 时才 new,之后复用)
    let db1 = direg::get_singleton::<Database>("db").unwrap();
    let db2 = direg::get_singleton::<Database>("db").unwrap();
    println!("Arc::ptr_eq(db1, db2) = {}", Arc::ptr_eq(&db1, &db2)); // true

    // 3. 获取多例(每次 get 都 new)
    let log1 = direg::get::<RuLog>("logger").unwrap();
    let log2 = direg::get::<RuLog>("logger").unwrap();
    println!("多例: log1={:?}, log2={:?}", log1, log2);
}

const DB_BEAN__NAME_S: &str = "db111sss.Database.bean_XXXX_db";
const DB_BEAN__NAME: &str = "db111.Database.bean_XXXX_db";
pub fn find_bean_database() -> Option<Arc<Database>> {
    direg::get_bean::<Database>(DB_BEAN__NAME)
}
pub fn find_bean_database_single() -> Option<Arc<Database>> {
    direg::get_bean::<Database>(DB_BEAN__NAME_S)
}
#[ctor(unsafe)]
pub fn register_bean_database() {
    direg::register_singleton(DB_BEAN__NAME_S, Database::new);
    //  ruregister::register (DB_BEAN__NAME, Database::new);
}
#[test]
fn test1_greg_bean_s() {
    if let Some(db) = find_bean_database_single() {
        println!("{:?}", *db); // 需要 MyStruct 实现 Debug
        // 或者调用方法
        println!("{:?}", db);
    }
    if let Some(db) = find_bean_database_single() {
        println!("{:?}", *db); // 需要 MyStruct 实现 Debug
        // 或者调用方法
        println!("{:?}", db);
    }
}
#[test]
fn test2_greg_bean() {
    if let Some(db) = find_bean_database() {
        println!("{:?}", *db); // 需要 MyStruct 实现 Debug
        // 或者调用方法
        println!("{:?}", db);
    }
    if let Some(db) = find_bean_database() {
        println!("{:?}", *db); // 需要 MyStruct 实现 Debug
        // 或者调用方法
        println!("{:?}", db);
    }
}
#[test]
fn test3_greg_bean() {
    // 1. 注册(全局,任意地方都能调)
    direg::register_singleton("db1", Database::new);
    direg::register("logger1", RuLog::new);

    // 2. 获取单例(首次 get 时才 new,之后复用)
    let db1 = direg::get_bean::<Database>("db1").unwrap();
    let db2 = direg::get_bean::<Database>("db1").unwrap();
    println!("Arc::ptr_eq(db1, db2) = {}", Arc::ptr_eq(&db1, &db2)); // true

    // 3. 获取多例(每次 get 都 new)
    let log1 = direg::get_bean::<RuLog>("logger1").unwrap();
    let log2 = direg::get_bean::<RuLog>("logger1").unwrap();
    println!("多例: log1={:?}, log2={:?}", log1, log2);
}
#[test]
fn test4_greg_bean() {
   
    let   p = dbexample::find_bean_person().unwrap() ;
    rulog::info(p.to_string().as_str());
       
}