injectables 0.1.0

A procedural macro library that enables field injection between Rust structs through #[injectable] and #[inject_fields] attributes. The library handles visibility rules, generic type resolution, and detects circular dependencies during compile time to ensure safe composition. This enables a declarative approach to struct composition where fields from one or more source structs can be automatically injected into target structs while respecting Rust's ownership and visibility rules.
Documentation
1
2
3
4
5
6
7
8
9
10
error[E0124]: field `id` is already declared
  --> tests/fail/duplicate_properties.rs:8:1
   |
8  | #[inject_fields(Base)]
   | ^^^^^^^^^^^^^^^^^^^^^^ field already declared
9  | pub struct Conflict {
10 |   pub id: u32,  // Should fail because 'id' is already injected
   |   ----------- `id` first declared here
   |
   = note: this error originates in the attribute macro `inject_fields` (in Nightly builds, run with -Z macro-backtrace for more info)