1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
#[macro_export] macro_rules! inject { ($comp:path: $($profile:path),*) => { { $( if profile_name::<$profile>().eq(&waiter_di::APP_PROFILE.as_str()) { waiter_di::Provider::<$comp>::create(&mut waiter_di::Container::<$profile>::new()) } else )* { waiter_di::Provider::<$comp>::create(&mut waiter_di::Container::<waiter_di::profiles::Default>::new()) } } } } #[macro_export] macro_rules! wrap { ($wrapped_type:path as $wrapper_name:ident) => { pub struct $wrapper_name($wrapped_type); impl Deref for $wrapper_name { type Target = $wrapped_type; fn deref(&self) -> &Self::Target { return &self.0; } } } }