ruwebframe 0.1.3

a simple webframe for rust actix-web, based on rudi and rbatis.
Documentation
use std::any::Any;
use std::sync::Arc;

/// 定义 Bean 注册表的行为
pub trait BeanRegistry {
    /// 注册一个多例工厂(每次 get 都会调用 factory 创建新实例)
    fn register<F, T>(&mut self, key: &str, factory: F)
    where
        F: Fn() -> T + Send + Sync + 'static,
        T: Any + Send + Sync + 'static;

    /// 注册一个单例工厂(首次调用时创建,之后返回同一个 Arc<T>)
    fn register_singleton<F, T>(&mut self, key: &str, factory: F)
    where
        F: Fn() -> T + Send + Sync + 'static,
        T: Any + Send + Sync + 'static;

    /// 获取多例(每次返回新实例,要求 T: Clone)
    // fn get<T: Any + Clone>(&self, key: &str) -> Option<T>;
    // 
    // /// 获取单例(返回 Arc<T>)
    // fn get_singleton<T: Any + Send + Sync>(&self, key: &str) -> Option<Arc<T>>;

    /// 获取 Bean(等价于 get_singleton,可能只是别名)
    fn get_bean<T: Any + Send + Sync>(&self, key: &str) -> Option<Arc<T>> ;
}