pub struct Dependencies<'a> { /* private fields */ }Expand description
Dependency provider
Implementations§
Source§impl<'a> Dependencies<'a>
impl<'a> Dependencies<'a>
Sourcepub fn get<T: Any + Send + Sync + 'static>(&mut self) -> Result<Arc<T>, String>
pub fn get<T: Any + Send + Sync + 'static>(&mut self) -> Result<Arc<T>, String>
Get bean with default name
Examples found in repository?
examples/basic.rs (line 70)
57fn main() -> Result<(), String> {
58 // Create container
59 let container = BeanContainer::new();
60
61 // Register Database (Singleton)
62 container.register::<Database, _>(Scope::Singleton, |_deps| {
63 Ok(Database::new(
64 "postgresql://localhost:5432/mydb".to_string(),
65 ))
66 })?;
67
68 // Register UserService (Singleton)
69 container.register::<UserService, _>(Scope::Singleton, |deps| {
70 let db = deps.get::<Database>()?;
71 Ok(UserService::new(db))
72 })?;
73
74 // Register OrderService (Singleton)
75 container.register::<OrderService, _>(Scope::Singleton, |deps| {
76 let db = deps.get::<Database>()?;
77 let user_service = deps.get::<UserService>()?;
78 Ok(OrderService::new(db, user_service))
79 })?;
80
81 println!("\n=== Get and use OrderService ===");
82 let order_service = container.get::<OrderService>();
83 order_service.create_order(1, "Laptop");
84
85 println!("\n=== Get OrderService again (should reuse singleton) ===");
86 let order_service2 = container.get::<OrderService>();
87 order_service2.create_order(2, "Phone");
88
89 println!("\n=== Verify same instance ===");
90 println!(
91 "Same instance: {}",
92 Arc::ptr_eq(&order_service, &order_service2)
93 );
94
95 Ok(())
96}Sourcepub fn get_named<T: Any + Send + Sync + 'static>(
&mut self,
name: Option<&str>,
) -> Result<Arc<T>, String>
pub fn get_named<T: Any + Send + Sync + 'static>( &mut self, name: Option<&str>, ) -> Result<Arc<T>, String>
Get bean with specified name
Sourcepub fn current_path(&self) -> String
pub fn current_path(&self) -> String
Get current dependency path (for debugging)
Auto Trait Implementations§
impl<'a> !UnwindSafe for Dependencies<'a>
impl<'a> Freeze for Dependencies<'a>
impl<'a> RefUnwindSafe for Dependencies<'a>
impl<'a> Send for Dependencies<'a>
impl<'a> Sync for Dependencies<'a>
impl<'a> Unpin for Dependencies<'a>
impl<'a> UnsafeUnpin for Dependencies<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more