1 unstable release
new 0.1.0 | Jan 26, 2025 |
---|
#1467 in Procedural macros
107 downloads per month
Used in forgy
4KB
69 lines
forgy
Derive macro and traits for building dependency graphs. Simple dependency injector.
use std::sync::Arc;
#[derive(forgy::Build)]
#[forgy(input = Input)]
struct Foo {
#[forgy(value = input.the_string.clone())]
from_input: String,
}
#[derive(forgy::Build)]
#[forgy(input = Input)]
struct Bar {
foo: Arc<Foo>,
}
struct Input {
the_string: String,
}
fn main() {
let mut c = forgy::Container::new(Input {
the_string: "from input".to_string(),
});
let bar: Bar = c.build();
assert_eq!(bar.foo.from_input, "from input");
let foo: Arc<Foo> = c.get();
assert_eq!(Arc::as_ptr(&bar.foo), Arc::as_ptr(&foo));
}
Dependencies
~0.6–1MB
~23K SLoC