shaku 0.6.2

Compile Time Dependency Injection for Rust
Documentation
error[E0277]: the trait bound `TestModule: HasComponent<(dyn DependencyTrait + 'static)>` is not satisfied
  --> tests/ui/provider_missing_component_dependency.rs:22:1
   |
22 | / module! {
23 | |     TestModule {
24 | |         components = [],
25 | |         providers = [ProviderImpl]
26 | |     }
27 | | }
   | |_^ the trait `HasComponent<(dyn DependencyTrait + 'static)>` is not implemented for `TestModule`, which is required by `ProviderImpl: Provider<TestModule>`
   |
   = help: the trait `Provider<M>` is implemented for `ProviderImpl`
note: required for `ProviderImpl` to implement `Provider<TestModule>`
  --> tests/ui/provider_missing_component_dependency.rs:14:10
   |
14 | #[derive(Provider)]
   |          ^^^^^^^^ unsatisfied trait bound introduced in this `derive` macro
15 | #[shaku(interface = ProviderTrait)]
16 | struct ProviderImpl {
   |        ^^^^^^^^^^^^
   = note: this error originates in the macro `module` which comes from the expansion of the derive macro `Provider` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0277]: `TestModule` cannot be shared between threads safely
  --> tests/ui/provider_missing_component_dependency.rs:23:5
   |
23 |     TestModule {
   |     ^^^^^^^^^^ `TestModule` cannot be shared between threads safely
   |
   = help: the trait `HasComponent<(dyn DependencyTrait + 'static)>` is not implemented for `TestModule`, which is required by `TestModule: ModuleInterface`
note: required for `ProviderImpl` to implement `Provider<TestModule>`
  --> tests/ui/provider_missing_component_dependency.rs:14:10
   |
14 | #[derive(Provider)]
   |          ^^^^^^^^ unsatisfied trait bound introduced in this `derive` macro
15 | #[shaku(interface = ProviderTrait)]
16 | struct ProviderImpl {
   |        ^^^^^^^^^^^^
note: required because it appears within the type `TestModule`
  --> tests/ui/provider_missing_component_dependency.rs:23:5
   |
23 |     TestModule {
   |     ^^^^^^^^^^
   = note: required for `TestModule` to implement `ModuleInterface`
note: required by a bound in `Module`
  --> src/module/module_traits.rs
   |
   | pub trait Module: ModuleInterface {
   |                   ^^^^^^^^^^^^^^^ required by this bound in `Module`
   = note: this error originates in the derive macro `Provider` (in Nightly builds, run with -Z macro-backtrace for more info)