ruwebframe 0.1.0

A brief description of your crate.
Documentation
use ctor::ctor;
use std::any::Any;
use std::sync::Arc;
use actix_web::middleware::Logger;

use crate::rudi::dicontainer::direg;

#[derive(Debug, Clone)]
struct Database {
    id: u64,
}

impl Database {
    fn new() -> Self {
        println!(">>> Database::new() 被调用了!");
        Self { id: rand::random() }
    }
}
const DB_BEAN__NAME:&str = "db.Database.bean_XXXX_db";
const DB_BEAN__NAME_S:&str = "single.db.Database.bean_XXXX_db";

pub fn find_bean_database  ( ) -> Option<Arc<Database>> {
    direg::get_bean::<Database>(DB_BEAN__NAME )

}
#[ctor(unsafe)]
pub fn register_bean_database  ( )   {
    direg:: register_singleton(DB_BEAN__NAME, Database::new);

}
#[test]
fn test_001_greg_bean() {
    // 1. 注册(全局,任意地方都能调)
    direg:: register_singleton(DB_BEAN__NAME_S, Database::new);
    direg:: register (DB_BEAN__NAME, Database::new);

    let log1 = direg::get_bean::<Database>(DB_BEAN__NAME_S).unwrap();
    let log2 = direg::get_bean::<Database>(DB_BEAN__NAME_S).unwrap();
    let log3 = direg::get_bean::<Database>(DB_BEAN__NAME ).unwrap();

    println!("多例: log1={:?}, log2={:?},log3={:?}", log1, log2,log3);
    if let Some(db) = direg::get_bean::<Database>(DB_BEAN__NAME) {
        // arc_t 是 Arc<MyStruct>
        // 通过解引用获取 &MyStruct
        println!("{:?}", *db); // 需要 MyStruct 实现 Debug
        // 或者调用方法
        println!("{:?}",db);

    }
}
#[test]
fn test_002_greg_bean() {
  
    if let Some(db) = find_bean_database(){
        // arc_t 是 Arc<MyStruct>
        // 通过解引用获取 &MyStruct
        println!("{:?}", *db); // 需要 MyStruct 实现 Debug
        // 或者调用方法
        println!("{:?}",db);

    }
}
#[test]
fn test_003_greg_bean() {
    // 1. 注册(全局,任意地方都能调)
    direg:: register_singleton(DB_BEAN__NAME_S, Database::new);
    direg:: register (DB_BEAN__NAME, Database::new);

    let log1 = direg::get_bean::<Database>(DB_BEAN__NAME_S).unwrap();
    let log2 = direg::get_bean::<Database>(DB_BEAN__NAME_S).unwrap();
    let log3 = direg::get_bean::<Database>(DB_BEAN__NAME ).unwrap();

    println!("多例: log1={:?}, log2={:?},log3={:?}", log1, log2,log3);
    if let Some(db) = direg::get_bean::<Database>(DB_BEAN__NAME) {
        // arc_t 是 Arc<MyStruct>
        // 通过解引用获取 &MyStruct
        println!("{:?}", *db); // 需要 MyStruct 实现 Debug
        // 或者调用方法
        println!("{:?}",db);

    }
}