Expand description
§Kamikaze DI
Dependency Injection framework.
Have a look at the readme file in the git repo for a more in depth discussion.
§In use
ⓘ
extern crate kamikaze_di;
#[macro_use] extern crate kamikaze_di_derive;
use kamikaze_di::{Injector, ContainerBuilder, Result};
use std::rc::Rc;
#[derive(Inject, Clone)]
struct Config {
pub db: String,
}
#[derive(InjectAsRc, Clone)]
struct DatabaseConnection {
config: Config,
}
#[derive(Inject, Clone)]
struct UserRepository {
db_connection: Rc<DatabaseConnection>,
}
let mut builder = ContainerBuilder::new();
builder
.register::<Config>(Config {
db: "localhost".to_string(),
})?;
let container = builder.build();
let user_repo_result: Result<UserRepository> = container.inject();
assert!(user_repo_result.is_ok());
let _user_repo = user_repo_result?;
Structs§
- Container
- Dependency container. Can be used with Resolver or Injector.
- Container
Builder - Dependency container builder.
- Error
- Error type.
Traits§
- Inject
- Resolves itself from a container.
- Inject
AsRc - Resolves itself from a container as a Rc
. - Injector
- Resolves dependencies automatically.
- Resolver
- Resolves dependencies.
Type Aliases§
- Result
- Result type