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;