use container::Container;
use ruwebframe::database::Database;
use ruwebframe::rudi::dicontainer::container;
#[derive(Debug)]
struct Logger {
id: usize,
}
impl Logger {
fn new() -> Self {
use std::sync::atomic::{AtomicUsize, Ordering};
static COUNTER: AtomicUsize = AtomicUsize::new(0);
let id = COUNTER.fetch_add(1, Ordering::SeqCst);
println!(">>> Logger::new() 第 {} 次", id);
Self { id }
}
}
#[test]
fn test_01_rucontainer() {
let mut container = Container::new();
container.register("db", Database::new);
container.register_singleton("logger", Logger::new);
println!("--- 第一次 get logger ---");
let log1 = container.get_singleton::<Logger>("logger").unwrap();
println!("log1: {:?}\n", log1);
}