| Crates.io | imacro |
| lib.rs | imacro |
| version | 0.4.8 |
| created_at | 2025-04-15 06:42:38.997271+00 |
| updated_at | 2025-04-22 02:25:36.610995+00 |
| description | Zero cost dependency injection macros |
| homepage | |
| repository | https://github.com/open1s/rioc |
| max_upload_size | |
| id | 1634017 |
| size | 75,690 |
This crate provides derive macros for the Rioc dependency injection framework.
The #[derive(Provider)] macro generates implementation code for dependency injection.
use rioc::{Provider, Container};
// Define a dependency
struct MyDependency;
// Define a service that depends on MyDependency
#[derive(Provider)]
struct MyService {
#[inject(name = "my_dependency")]
dependency: MyDependency,
}
fn main() {
// Create a container
let mut container = Container::new();
// Register the dependency
container.register("my_dependency", MyDependency);
// Resolve the service with dependencies injected
let service: MyService = container.resolve();
// Now you can use the service
println!("Service created successfully!");
}
use rioc::Provider;
#[derive(Provider)]
struct GenericService<T> {
dependency: T,
}
Add to your Cargo.toml:
[dependencies]
rioc-derives = { path = "../derives" }