diff options
author | HampusM <hampus@hampusmat.com> | 2023-08-20 17:01:12 +0200 |
---|---|---|
committer | HampusM <hampus@hampusmat.com> | 2023-08-20 17:01:12 +0200 |
commit | 0b4232d343e2214ead8fa62583bff2e948173ddf (patch) | |
tree | f809051c9933a132971ab91244e83d1f9d387ad6 /macros/src/injectable | |
parent | be2c39b452b8b1e024300caff1ce8f11d54b27ce (diff) |
feat: expose DI container get_bound methods to public API
Diffstat (limited to 'macros/src/injectable')
-rw-r--r-- | macros/src/injectable/implementation.rs | 34 |
1 files changed, 25 insertions, 9 deletions
diff --git a/macros/src/injectable/implementation.rs b/macros/src/injectable/implementation.rs index bf168a4..9e97f45 100644 --- a/macros/src/injectable/implementation.rs +++ b/macros/src/injectable/implementation.rs @@ -420,14 +420,18 @@ impl<Dep: IDependency> InjectableImpl<Dep> let method_call = parse_str::<ExprMethodCall>( format!( - "{}.get_bound::<{}>({}.clone(), {})", + concat!( + "{}.get_bound::<{}>({}.clone(), ", + "syrette::di_container::BindingOptions::new(){})" + ), DI_CONTAINER_VAR_NAME, dep_interface_str, DEPENDENCY_HISTORY_VAR_NAME, - dependency.get_name().as_ref().map_or_else( - || "None".to_string(), - |name| format!("Some(\"{}\")", name.value()) - ) + dependency + .get_name() + .as_ref() + .map(|name| format!(".name(\"{}\")", name.value())) + .unwrap_or_default() ) .as_str(), )?; @@ -900,7 +904,10 @@ mod tests parse2::<Expr>(output)?, parse2::<Expr>(quote! { #di_container_var_ident - .get_bound::<Foo>(#dep_history_var_ident.clone(), None) + .get_bound::<Foo>( + #dep_history_var_ident.clone(), + syrette::di_container::BindingOptions::new() + ) .map_err(|err| InjectableError::ResolveFailed { reason: Box::new(err), affected: self_type_name @@ -948,7 +955,10 @@ mod tests parse2::<Expr>(output)?, parse2::<Expr>(quote! { #di_container_var_ident - .get_bound::<Foo>(#dep_history_var_ident.clone(), Some("special")) + .get_bound::<Foo>( + #dep_history_var_ident.clone(), + syrette::di_container::BindingOptions::new().name("special") + ) .map_err(|err| InjectableError::ResolveFailed { reason: Box::new(err), affected: self_type_name @@ -994,7 +1004,10 @@ mod tests parse2::<Expr>(output)?, parse2::<Expr>(quote! { #di_container_var_ident - .get_bound::<Foo>(#dep_history_var_ident.clone(), None) + .get_bound::<Foo>( + #dep_history_var_ident.clone(), + syrette::di_container::BindingOptions::new() + ) .await .map_err(|err| InjectableError::AsyncResolveFailed { reason: Box::new(err), @@ -1044,7 +1057,10 @@ mod tests parse2::<Expr>(output)?, parse2::<Expr>(quote! { #di_container_var_ident - .get_bound::<Foo>(#dep_history_var_ident.clone(), Some("foobar")) + .get_bound::<Foo>( + #dep_history_var_ident.clone(), + syrette::di_container::BindingOptions::new().name("foobar") + ) .await .map_err(|err| InjectableError::AsyncResolveFailed { reason: Box::new(err), |