From 5335cdad99a6d566ea6e83f97012c7954ba93c45 Mon Sep 17 00:00:00 2001 From: HampusM Date: Sun, 24 Jul 2022 15:58:30 +0200 Subject: feat: add support for generics --- src/lib.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/lib.rs') diff --git a/src/lib.rs b/src/lib.rs index 5724f10..cb0dd5a 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -22,3 +22,20 @@ pub mod libs; // Private mod provider; + +/// Shortcut for creating a DI container binding for a injectable without a declared interface. +/// +/// This will declare a interface for the implementation. +/// +/// Useful for when the implementation or the interface is generic. +/// +/// # Arguments +/// {interface} => {implementation}, {DI container variable name} +#[macro_export] +macro_rules! di_container_bind { + ($interface: path => $implementation: ty, $di_container: ident) => { + $di_container.bind::().to::<$implementation>(); + + syrette::declare_interface!($implementation -> $interface); + }; +} -- cgit v1.2.3-18-g5258