Skip to main content

volga_di/
lib.rs

1//! Volga DI
2//! 
3//! A standalone, flexible, and easy-to-configure DI container.
4//! 
5//! # Example
6//! ```no_run
7//! use std::collections::HashMap;
8//! use std::sync::{Arc, Mutex};
9//! use volga_di::ContainerBuilder;
10//! 
11//! #[derive(Default, Clone)]
12//! struct InMemoryCache {
13//!     inner: Arc<Mutex<HashMap<String, String>>>
14//! }
15//! 
16//! # fn main() {
17//! let mut container = ContainerBuilder::new();
18//! container.register_singleton(InMemoryCache::default());
19//! 
20//! let container = container.build();
21//! 
22//! let Ok(cache) = container.resolve::<InMemoryCache>() else { 
23//!     panic!("Unable to resolve InMemoryCache");
24//! };
25//! # }
26//! ```
27
28pub use crate::{
29    container::{Container, ContainerBuilder, GenericFactory},
30    inject::Inject,
31};
32
33pub mod error;
34pub mod container;
35pub mod inject;