ERROR: ร— I can't generate code that will pass the borrow checker *and* match the โ”‚ instructions in your blueprint: โ”‚ - `app::handler` wants to consume `app::C<'_>` โ”‚ - `app::C<'_>` captures a reference to `app::A` โ”‚ - But, earlier on, `app::b` consumed `app::A` by value โ”‚ โ”‚ Since I'm not allowed to clone `app::A`, I can't resolve this conflict. โ”‚ โ”‚ help: Allow me to clone `app::A` in order to satisfy the borrow checker. โ”‚ You can do so by invoking `.cloning(CloningStrategy::CloneIfNecessary)` โ”‚ on the type returned by `.constructor`. โ”‚ โ˜ž โ”‚ โ•ญโ”€[src/lib.rs:47:1] โ”‚ 47 โ”‚ let mut bp = Blueprint::new(); โ”‚ 48 โ”‚ bp.constructor(f!(crate::a), Lifecycle::RequestScoped); โ”‚ ยท  โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€ โ”‚ ยท โ•ฐโ”€โ”€ The constructor was registered here โ”‚ 49 โ”‚ bp.constructor(f!(crate::b), Lifecycle::RequestScoped); โ”‚ โ•ฐโ”€โ”€โ”€โ”€ โ”‚ help: Consider changing the signature of `app::b`. โ”‚ It takes `app::A` by value. Would a shared reference, `&app::A`, be โ”‚ enough? โ”‚ help: If `app::A` itself cannot implement `Clone`, consider wrapping it in โ”‚ an `std::sync::Rc` or `std::sync::Arc`.